如何向所有 Django 响应添加 HTTP header
How to add an HTTP header to all Django responses
我想在我的 Django 网站 returns 的所有回复中添加一些 headers。有没有办法做到这一点(除了向 render
函数添加包装器之外)?
是的,你应该看看 middlewares。
yourapp/middleware.py
class MyMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
response = self.get_response(request)
response['X-My-Header'] = "my value"
return response
yourproject/settings.py
MIDDLEWARE = [
...,
'yourapp.middleware.MyMiddleware',
...,
]
返回JsonResponse时。
from django.http import JsonResponse
data = {'key','value'} # some data
response = JsonResponse(data,status=200)
response['Retry-after'] = 345 # seconds
response['custom-header'] = 'some value'
return response
我想在我的 Django 网站 returns 的所有回复中添加一些 headers。有没有办法做到这一点(除了向 render
函数添加包装器之外)?
是的,你应该看看 middlewares。
yourapp/middleware.py
class MyMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
response = self.get_response(request)
response['X-My-Header'] = "my value"
return response
yourproject/settings.py
MIDDLEWARE = [
...,
'yourapp.middleware.MyMiddleware',
...,
]
返回JsonResponse时。
from django.http import JsonResponse
data = {'key','value'} # some data
response = JsonResponse(data,status=200)
response['Retry-after'] = 345 # seconds
response['custom-header'] = 'some value'
return response