您好,登錄后才能下訂單哦!
django的中間件可以在視圖函數執行前執行,比如登陸驗證、日志記錄等,下面簡單說明一下中間件的基礎用法,主要為筆者學習時的筆記
文件夾的名字可自定義,本文使用utils作為文件夾名
如用于登陸驗證的中間件loginCheck.py
from django.http import HttpResponseRedirect
from django.utils.deprecation import MiddlewareMixin
class UserLoginCheck(MiddlewareMixin):
'''
登錄驗證中間件
'''
def process_request(self, request):
# 用戶request請求前
path = ['/login/', '/logout/'] # 不需要進行登錄檢測的url
if request.path in path:
return
userinfoSession = request.session.get('userinfo')
if not userinfoSession:
return HttpResponseRedirect('/login/')
return
在setting.py文件中配置中間件
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'utils.loginCheck.UserLoginCheck', # 此處為自定義的中間件
]
中間件可定義的五種方法
Request預處理函數: process_request(self, request)
View預處理函數: process_view(self, request, callback, callback_args,callback_kwargs)
Template模版渲染函數:process_template_response()
Exception后處理函數:process_exception(self, request, exception)
Response后處理函數:process_response(self, request, response)
參考資料:https://baijiahao.baidu.com/s?id=1622776730103957680
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。