django的中介軟體可以在檢視函式執行前執行,比如登陸驗證、日誌記錄等,下面簡單說明一下中介軟體的基礎用法,主要為筆者學習時的筆記1. 在django專案資料夾下建立乙個用於存放中介軟體函式的資料夾
資料夾的名字可自定義,本文使用utils作為資料夾名
2. 在utils資料夾中建立中介軟體py檔案
如用於登陸驗證的中介軟體logincheck.py
'''登入驗證中介軟體
'''def process_request(self, request):
# 使用者request請求前
path = ['/login/', '/logout/'] # 不需要進行登入檢測的url
return3. 配置使用中介軟體
在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)
Django 中介軟體
django中的中介軟體是乙個輕量級 底層的外掛程式系統,可以介入django的請求和響應處理過程,修改django的輸入或輸出。中介軟體的執行過程如下圖所示 django在中介軟體中預置了五個方法,這五個方法的區別在於不同的階段執行,對輸入或輸出進行干預,方法如下 def init self pa...
Django中介軟體
給檢視函式加裝飾器判斷使用者是否登入,把沒有登入的請求跳轉到登入頁面,我們通過給幾個特定檢視函式加裝飾器實現了這個需求,但是這樣做比較繁瑣,用django中的中介軟體會比較簡潔 什麼是中介軟體 中介軟體是幫助我們再檢視函式執行之前和執行之後都可以做一些額外的操作,它本質上就是乙個自定義類,類中定義了...
Django中介軟體
什麼是中介軟體?django中的中介軟體是乙個輕量級 底層的外掛程式系統,可以介入django的請求和響應處理過程,修改django的輸入或輸出。中介軟體的設計為開發者提供了一種無侵入式的開發方式,增強了django框架的健壯性。我們可以使用中介軟體,在django處理檢視的不同階段對輸入或輸出進行...