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
ます。