中介軟體
需要將中介軟體新增到 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
之後執行。