Django 请求时生成 tar 文件

1 投票
2 回答
505 浏览
提问于 2025-04-16 00:25

你好,

我想用Django生成一个tar.gz文件,这个文件里包含下面的文件,并且能够呈现出这个tar.gz文件:

来自Ubuntu服务器的内容:

/home/user/myfolder
/home/user/image.jpg
an xml file from www.mysite.com/foo.xml (which is a dynamicly generated xml file.

呈现的tar.gz文件

myfolder/
         content/
          .....
image.jpg
foo.xml

在Django的视图中,最好的方法是什么呢?

2 个回答

0

你可以使用django-tarview这个工具(通过pipPyPi安装,或者从github获取)。

你需要扩展tarview.views.BaseTarView这个类,并实现get_files这个方法:

from tarview.views import BaseTarView

class TarView(BaseTarView):
    def get_files(self):
        return [File(open('test_file.txt'), name="test_file.txt"),
            ContentFile(b"I am a text file", name="text.txt")]
2

可以从tarfile模块开始学习,这个模块很不错。

你可能想把文件存储在电脑的某个地方,这样可以省去很多麻烦。如果文件的内容没有变化,就没有必要重新生成这个文件。

撰写回答