6

とにかく、新しくレンダリングされたhtmlテンプレートなど、動的に生成されたコンテンツをzipfileを使用してzipファイルに圧縮できますか?

静的コンテンツを圧縮する例はいくつかあるようですが、動的コンテンツを圧縮する例はありません。それとも、まったくできないのですか?

もう 1 つ質問があります。内部に多数のサブフォルダーを含む zip ファイルを作成することはできますか?

ありがとう。

4

3 に答える 3

14

作業コード: (アプリ エンジンの場合:)

output = StringIO.StringIO()
z = zipfile.ZipFile(output,'w')
my_data = "<html><body><p>Hello, world!</p></body></html>"
z.writestr("hello.html", my_data)
z.close()

self.response.headers["Content-Type"] = "multipart/x-zip"
self.response.headers['Content-Disposition'] = "attachment; filename=test.zip"
self.response.out.write(output.getvalue())

Schnouki と Ryan に再び感謝します。

于 2009-06-08T11:16:36.387 に答える
7

以下を使用して、zipファイルに必要なものを追加できますZipFile.writestr()

my_data = "<html><body><p>Hello, world!</p></body></html>"
z.writestr("hello.html", my_data)

セパレータとして/(または)を使用してサブフォルダを使用することもできます。os.sep

z.writestr("site/foo/hello/index.html", my_data)
于 2009-06-08T08:01:28.090 に答える
3

Schnouki の優れた回答に加えて、 ZipFile にStringIO.StringIOによって作成されたようなファイルのようなオブジェクトを渡すこともできます。

于 2009-06-08T09:38:06.413 に答える