在django的模組當中新建乙個檔案:middlewares
middlewares.py:
from django.utils.deprecation import middlewaremixin
# 中介軟體需要繼承middlewaremixin物件
class
mymiddleaware
(middlewaremixin)
:# 不記得這兩個方法名,可以檢視原始碼中的__call__方法
# 呼叫檢視之前執行,只有乙個request引數
defprocess_request
(self, request)
:print
("prcoess_request"
)# 給reuqest新增鍵值
request.name =
"python"
# 如果此處有return httpresponse()則不執行檢視
# 呼叫檢視之後執行,有兩個引數
defprocess_response
(self,request, response)
:print
("process_response"
)return response
class
mymiddleaware2
(middlewaremixin)
:def
process_request
(self, request)
:print
("prcoess_request"
)# 拿到上乙個中介軟體的鍵值,注意需要先執行上乙個中介軟體
print
("request.name"
, request.name)
defprocess_response
(self, request, response)
:print
("process_response"
)return response
建立好中介軟體後,需要在settings.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'
,# 將中介軟體的位置
'goods.middlewares.mymiddleaware'
,'goods.middlewares.mymiddleaware2'
,]
Django 中介軟體
django中的中介軟體是乙個輕量級 底層的外掛程式系統,可以介入django的請求和響應處理過程,修改django的輸入或輸出。中介軟體的執行過程如下圖所示 django在中介軟體中預置了五個方法,這五個方法的區別在於不同的階段執行,對輸入或輸出進行干預,方法如下 def init self pa...
Django中介軟體
給檢視函式加裝飾器判斷使用者是否登入,把沒有登入的請求跳轉到登入頁面,我們通過給幾個特定檢視函式加裝飾器實現了這個需求,但是這樣做比較繁瑣,用django中的中介軟體會比較簡潔 什麼是中介軟體 中介軟體是幫助我們再檢視函式執行之前和執行之後都可以做一些額外的操作,它本質上就是乙個自定義類,類中定義了...
Django中介軟體
什麼是中介軟體?django中的中介軟體是乙個輕量級 底層的外掛程式系統,可以介入django的請求和響應處理過程,修改django的輸入或輸出。中介軟體的設計為開發者提供了一種無侵入式的開發方式,增強了django框架的健壯性。我們可以使用中介軟體,在django處理檢視的不同階段對輸入或輸出進行...