2010-06-25 54 views
1

問候, 通過使用Django,我想生成包含下面的文件一個tar.gz,並呈現tar.gz文件:Django的焦油產生要求

從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

tarfile模塊可能是一個很好的開始。

您可能想將文件緩存在文件系統的某個位置,以避免過多的工作。如果內容沒有改變,沒有理由重新生成文件。

0

可以使用Django的tarview(通過pipfrom PyPi安裝,或者從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")]