Looking for django Answers? Try Ask4KnowledgeBase
Looking for django Keywords? Try Ask4Keywords

Djangoミドルウェア


前書き

Djangoのミドルウェアは、コードが応答/要求処理にフックして、Djangoの入力または出力を変更するためのフレームワークです。

備考

実行に含める前に、ミドルウェアをsettings.py MIDDLEWARE_CLASSESリストに追加する必要があります。 Djangoが新しいプロジェクトを作成するときに提供するデフォルトのリストは次のとおりです:

MIDDLEWARE_CLASSES = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

これらはすべて、すべてのリクエスト( views.pyビューコードに達する前とprocess_responseコールバックの逆順、バージョン1.10より前)に順番に実行されるすべての関数です。 クロスサイトリクエスト偽造(csrf)トークンを注入するなど、さまざまなことを行います。

何らかのミドルウェアがリダイレクトを行うと、その後のすべてのミドルウェアが決して実行されないため、順序は重要です。また、ミドルウェアがcsrfトークンがそこにあることを期待している場合は、CsrfViewミドルウェアの後に実行するCsrfViewMiddlewareます。

ミドルウェア 関連する例