好像他们有一个gzip_page装饰器用于视图
from django.views.decorators.gzip import gzip_page
@gzip_page
def viewFunc(request):
return HttpResponse("hello"*100)
参考此处:https://docs.djangoproject.com/en/1.4/topics/http/decorators/#module-django.views.decorators.gzip
以及可以添加到设置然后使用的中间件类。
MIDDLEWARE_CLASSES = (
django.middleware.gzip.GZipMiddleware,
...
)
from django.middleware.gzip import GZipMiddleware
gzip_middleware = GZipMiddleware()
def dec(request, *args, **kwargs):
response = func(request, *args, **kwargs)
return gzip_middleware.process_response(request, response)
return dec
使用页面装饰器加快渲染巨大的ammt。数据(对于表格),想知道哪种方式最好/差异是什么。
感谢您的任何信息!
答案 0 :(得分:4)
如果您查看Django sources,您会看到gzip_page
装饰者和GZipMiddleware
实际上是同一件事:
gzip_page = decorator_from_middleware(GZipMiddleware)
所以没有任何区别(除了将中间件转换为装饰器所需的一些开销)。如果你只需要为一个特定视图启用gzip,你显然应该使用装饰器,但如果你想为整个项目启用gzip,请使用中间件。
作为旁注,如果你将gzipping放到你正在使用的任何web服务器上(Apache,nginx等),我相信你会得到更好的性能。
另请注意,您不应将gzip用于受HTTPS保护的网站,更多信息请点击此处:http://breachattack.com/