我将要求在Stackoverflow上找不到的东西。 我正在做一些Django,我最近发现我可以使用生成器来传输HTTP输出。 页面的输出非常适合正常情况,但我想使用GZip压缩来流式传输页面输出。
我尝试过使用简单的zlib.compress函数,但无济于事。该函数生成小的gzip文件。
我希望在处理数据时返回小块数据,作为字符串。这些块应该形成Gzip压缩文件的内容。怎么会这样做? 感谢。
答案 0 :(得分:1)
使用zlib.compressobj([level])
和Compress.compress(string)
以及Compress.flush([mode])
完成
import zlib
def compress(chunks):
c = zlib.compressobj()
for chunk in chunks:
yield c.compress(chunk)
yield c.flush(zlib.Z_FINISH)
答案 1 :(得分:0)
压缩内容是您的网络服务器的属性,而不是框架。如果您使用的是apache,则可以使用mod_deflate。我希望你没有提到django给出的简单服务器用于测试目的。如果你指的是这样做,那么只需查看术语gzip
的代码,看看它是否进行任何类型的压缩。
另外,如果您考虑在app server中进行压缩,请注意,最好将此作业移至Web服务器。