web-dev-qa-db-ja.com

すべてのDjango応答にHTTPヘッダーを追加する方法

Django Webサイトが返すすべての応答にいくつかのヘッダーを追加します。これを行う方法はありますか(render関数にラッパーを追加する以外に)?

26
Cisplatin

はい、 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',
    ...,
]
43
Antoine Pinsard