5、獲取的資料會交給最後乙個中介軟體的process_response方法處理,然後依次向前面的中介軟體process_response
6、在任一中介軟體的process_request和process_view方法中有返回值就會直接返回給process_response
3、檢視函式
4、中介軟體再呼叫process_response方法處理,最後交給使用者
在工程目錄下建立任意目錄,這裡建立路徑為:/project/middle/m1.py
middleware =['middle.m1.row1',
'middle.m1.row2',
'middle.m1.row3',
]
deftest(request):
#int('fds') #當views函式出現異常,中介軟體中的process_exception執行
print('
沒帶錢|')
#view_func_args: url中傳遞的非字典的值會用這個變數接收
#view_func_kwargs: url中傳遞的字典會傳遞到這個變數接收(如:nid=1)
print('
process_view_1')
def process_response(self,request, response): #
response就是拿到的返回資訊
print('
response_1')
return
response
defprocess_exception(self, request, exception):
'''只有當views函式中異常這個函式才會執行
>>出現異常了')
class
row2(middlewaremixin):
defprocess_request(self,request):
print('
process_request_2')
#1 如果在row2中的process_request中有返回值,那麼就不會到達row3
#2 row2直接將返回值交給自己的process_response再交給row1的process_response
#3 最後客戶端頁面顯示的就是『走』請求沒機會到達views函式,不會列印『沒帶錢』
#return httpresponse('走')
defprocess_view(self,request, view_func, view_func_args, view_func_kwargs):
print('
process_view_2')
defprocess_response(self,request, response):
print('
response_2')
return
response
class
row3(middlewaremixin):
defprocess_request(self,request):
print('
process_request_3')
defprocess_view(self,request, view_func, view_func_args, view_func_kwargs):
print('
process_view_3')
defprocess_response(self,request, response):
print('
response_3')
return response
13 2 7 中介軟體
中介軟體顧名思義,是介於request與response處理之間的一道處理過程,相對比較輕量級,並且在全域性上改變django的輸入與輸出。因為改變的是全域性,所以需要謹慎實用,用不好會影響到效能。如果你想修改請求,例如被傳送到view中的httprequest物件。或者你想修改view返回的htt...
21 中介軟體
一 中介軟體的定義 1.中介軟體是django請求 響應處理的鉤子框架,它是乙個輕量級的 低階的 外掛程式 系統,用於全域性改變django的輸入或輸出 2.中介軟體以類的形式體現 3.每個中介軟體元件負責做一些特定的功能,例如django包含乙個中介軟體元件 authenticationmiddl...
5 中介軟體 md
目錄自定義中介軟體 中介軟體注意事項 在web應用服務中,完整的乙個業務處理在技術上包含客戶端操作 伺服器端處理 返回處理結果給客戶端三個步驟。在實際的業務開發和處理中,會有更負責的業務和需求場景。乙個完整的系統可能要包含鑑權認證 許可權管理 安全檢查 日誌記錄等多維度的系統支援。鑑權認證 許可權管...