中介軟體

需要將中介軟體新增到 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 之前)。它們執行各種操作,例如注入 Cross Site Request Forgery(csrf) 令牌。

該順序很重要,因為如果某些中介軟體進行重定向,則所有後續中介軟體將永遠不會執行。或者,如果中介軟體期望 csrf 令牌存在,則必須在 CsrfViewMiddleware 之後執行。