在Django中构建自定义ZIP文件

3
我正在开发一个Web应用程序,使用SCORM技术,以便可以将其包含在客户的学习管理系统中。这是通过构建一个包含多个文件的zip文件来实现的。其中两个文件取决于他们想要包括的特定资源和客户本身。因此,我希望能够根据需求自动生成这些zip文件。
因此,想象一下我有一个“模板”版本的ZIP文件,已经提取到一个目录中:
/zipdir/fileA.html
/zipdir/fileB.xml
/zipdir/static-file.jpg

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

我可以创建一个基本的zip文件(不包含fileA和fileB),然后将这两个渲染文件添加到其中吗?否则,您将如何克隆zipdir到临时位置,然后在将其压缩之前对这两个文件进行渲染?

1个回答

5
使用zipfileStringIO,可以在内存中创建一个zip文件,并将其发送给客户端。

哦哦。这看起来像是让我只需将两个文件附加到“基本”zip中。这将有助于使服务器上的事物保持相对清洁。 - Oli
不需要StringIO(我直接通过“zipfile.writestring(..)”写入),但是“zipfile”非常有用。谢谢。 - Oli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接