如何将HTTP标头添加到所有Django响应

时间:2016-03-19 07:45:33

标签: django http http-headers

我想为我的Django网站返回的所有回复添加一些标题。有没有办法做到这一点(除了向render函数添加包装器?)

2 个答案:

答案 0 :(得分:37)

是的,你应该看看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',
    ...,
]

答案 1 :(得分:0)

返回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