代码之家  ›  专栏  ›  技术社区  ›  Oli

在Django中构建自定义ZIP文件

  •  3
  • Oli  · 技术社区  · 15 年前

    我正在开发一个使用SCORM的webapp,这样它就可以包含在我们客户的学习管理系统中。这是通过构建包含多个文件的zip文件来实现的。其中两个文件取决于它们要包含的特定资源和客户机本身。因此,我想根据需要自动生成这些zip文件。

    所以假设我有一个ZIP的“模板”版本,解压到一个目录中:

    /zipdir/fileA.html
    /zipdir/fileB.xml
    /zipdir/static-file.jpg
    

    假设我在fileA和fileB中使用了Django的模板sytax。我知道如何通过模板加载程序运行文件并呈现它,但如何将该文件添加到ZIP文件中?

    我可以创建一个基本的zip文件(其中没有file a和fileB)并将两个渲染添加到其中吗?否则,如何将zipdir克隆到一个临时位置,然后在压缩之前将这两个文件呈现给它?

    1 回复  |  直到 15 年前
        1
  •  5
  •   Ignacio Vazquez-Abrams    15 年前

    使用 zipfile 具有 StringIO 将允许您在内存中创建一个zip文件,稍后可以将其发送到客户端。