您好,登錄后才能下訂單哦!
django的中間件可以在視圖函數(shù)執(zhí)行前執(zhí)行,比如登陸驗證、日志記錄等,下面簡單說明一下中間件的基礎(chǔ)用法,主要為筆者學(xué)習(xí)時的筆記
文件夾的名字可自定義,本文使用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/'] # 不需要進(jìn)行登錄檢測的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預(yù)處理函數(shù): process_request(self, request)
View預(yù)處理函數(shù): process_view(self, request, callback, callback_args,callback_kwargs)
Template模版渲染函數(shù):process_template_response()
Exception后處理函數(shù):process_exception(self, request, exception)
Response后處理函數(shù):process_response(self, request, response)
參考資料:https://baijiahao.baidu.com/s?id=1622776730103957680
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。