Вы также можете просто использовать Промежуточное ПО GZip от Django :
Либо включив промежуточное ПО в settings.py, добавив:
MIDDLEWARE_CLASSES = (
django.middleware.gzip.GZipMiddleware,
...
)
Или сделайте это, прежде чем вернуть конкретный ответ. В вашем views.py, dec будет обработчиком для определенного URL
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
ПРИМЕЧАНИЕ. Вы должны быть уверены , что вы не должны подвергаться атакам по побочным каналам перед использованием промежуточного программного обеспечения GZip.
Внимание
Исследователи безопасности недавно обнаружили, что при сжатии
методы (в том числе GZipMiddleware) используются на сайте, сайте
может подвергнуться ряду возможных атак. Перед использованием
GZipMiddleware на вашем сайте, вы должны очень внимательно рассмотреть
подвержены ли вы этим атакам. Если вы сомневаетесь в
независимо от того, затронуты ли вы, вам следует избегать использования GZipMiddleware. Для
подробнее см. документ BREACH (PDF) и breachattack.com.
Также:
Изменено в Django 1.10: в старых версиях защита CSRF от Django
Механизм был уязвим для атак BREACH при использовании сжатия.
Это больше не так, но вы все равно должны позаботиться о том, чтобы
раскрыть свои секреты таким образом.