对每个请求 return 响应 headers 的 Django DRF 最佳实践
Django DRF best practices to return response headers on every request
我正在使用 Django DRF。
将以下响应添加为每个请求的一部分的最佳方法是什么headers
Cache-control: no-store, max-age=0
Pragma: no-cache
Strict-Transport-Security: max-age=7776000; includeSubDomains
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
理想情况下,我想在一处进行配置。
Signature: Response(data, status=None, template_name=None, headers=None, content_type=None)
headers: A dictionary of HTTP headers to use in the response.
所以就像这样使用它:
def foo(request):
# logic
headers = {
'Cache-control': 'no-store, max-age=0',
# ...
'X-Frame-Options': 'DENY'
}
return Response(your_data, headers)
如果您希望在每个请求中都使用它,只需创建您的自定义响应 class:
CustomResponse(Response):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.headers= {
'Cache-control': 'no-store, max-age=0',
# ...
'X-Frame-Options': 'DENY'
}
或者,另一个解决方案,也许更简单,创建一个全局 headers 变量并在您的响应中使用它 object。
我正在使用 Django DRF。
将以下响应添加为每个请求的一部分的最佳方法是什么headers
Cache-control: no-store, max-age=0
Pragma: no-cache
Strict-Transport-Security: max-age=7776000; includeSubDomains
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
理想情况下,我想在一处进行配置。
Signature: Response(data, status=None, template_name=None, headers=None, content_type=None)
headers: A dictionary of HTTP headers to use in the response.
所以就像这样使用它:
def foo(request):
# logic
headers = {
'Cache-control': 'no-store, max-age=0',
# ...
'X-Frame-Options': 'DENY'
}
return Response(your_data, headers)
如果您希望在每个请求中都使用它,只需创建您的自定义响应 class:
CustomResponse(Response):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.headers= {
'Cache-control': 'no-store, max-age=0',
# ...
'X-Frame-Options': 'DENY'
}
或者,另一个解决方案,也许更简单,创建一个全局 headers 变量并在您的响应中使用它 object。