gpt4 book ai didi

python - Django rest framework,设置api响应Content-Encoding为gzip

转载 作者:太空狗 更新时间:2023-10-30 00:43:03 25 4
gpt4 key购买 nike

我正在开发 django 项目,当其他服务器通过 api 调用请求某些数据时,它充当其他服务器的分发服务器,这些数据采用 JSON 形式并且非常大。所以我在想,有什么方法可以设置我的 DRF APIView 响应,为输出的 JSON 响应提供内容编码的 gzip 设置,以便在其他服务器使用时减少内容的大小。

目前我的应用程序在 gunicorn 上运行,前端使用 nginx 作为代理。

最佳答案

Django 有一个内置的 gzip middleware .

如果您使用的是 <= 1.10 版的 django,请在您的 settings.py 中:

MIDDLEWARE_CLASSES = [
'django.middleware.gzip.GZipMiddleware',
...
]

如果您使用的是 django 版本 > 1.10:

MIDDLEWARE = [
'django.middleware.gzip.GZipMiddleware',
...
]

此中间件应放置在任何其他需要读取或写入响应主体的中间件之前,以便随后进行压缩。

为什么?因为对于传入请求,django 使用您设置中定义的从上到下的中间件处理请求。对于外出响应中间件称为自下而上。

因此声明 gzip 中间件作为第一个中间件将使传入的请求被解压缩以供其他中间件读取;并且传出的响应将在离开之前被压缩,这样它就不会干扰其他中间件的操作。

关于python - Django rest framework,设置api响应Content-Encoding为gzip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43589053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com