- 乙個輕量級底層的外掛程式系統,可以介入django的請求和響應過程,修改django的輸入或輸出
- 每乙個中介軟體元件是乙個獨立的python類。可以定義下面方法中的乙個或多個
__init__: 無需任何引數,伺服器響應第乙個請求的時候呼叫一次,用於確定是否啟用當前中介軟體
process_request(request): 執行檢視之前被呼叫,在每個請求上呼叫,返回none或httpresponse物件
process_view(request, view_func, view_args, view_kwargs): 呼叫檢視之前被呼叫,在每個請求上呼叫,返回none或httpresponse
process_template_response(request.reponse): 在檢視剛好執行完畢之後被呼叫,在每個請求上呼叫,返回實現了render方法的響應物件
process_response(request, response): 所有響應返回瀏覽器之前被呼叫,在每個請求上呼叫,返回httpresponse物件
process_exception(request, response, exception): 當檢視丟擲異常時呼叫,在每個請求上呼叫,返回乙個httpresponse物件
- 如果你想干預哪個環節 只需編寫對應的類做處理並註冊到中介軟體呼叫的配置檔案中
1#rbac中介軟體案例23
login頁面放行
28if request.path_info == '
/stark11/login/':
29return
none30#
已經登入了放行
31if request.session.get('
user_info'):
32return
none33#
否則返回login頁面
34return redirect('
/stark11/login/')
3536
37class
rbacmiddleware(middlewaremixin):
3839
defprocess_request(self, request):40#
1. 獲取當前請求的url41#
request.path_info42#
2. 獲取session中儲存當前使用者的許可權43#
request.session.get("permission_url_list')
44 current_url =request.path_info
4546
#當前請求不需要執行許可權驗證
無權訪問
')
Django 中介軟體
django中的中介軟體是乙個輕量級 底層的外掛程式系統,可以介入django的請求和響應處理過程,修改django的輸入或輸出。中介軟體的執行過程如下圖所示 django在中介軟體中預置了五個方法,這五個方法的區別在於不同的階段執行,對輸入或輸出進行干預,方法如下 def init self pa...
Django中介軟體
給檢視函式加裝飾器判斷使用者是否登入,把沒有登入的請求跳轉到登入頁面,我們通過給幾個特定檢視函式加裝飾器實現了這個需求,但是這樣做比較繁瑣,用django中的中介軟體會比較簡潔 什麼是中介軟體 中介軟體是幫助我們再檢視函式執行之前和執行之後都可以做一些額外的操作,它本質上就是乙個自定義類,類中定義了...
Django中介軟體
什麼是中介軟體?django中的中介軟體是乙個輕量級 底層的外掛程式系統,可以介入django的請求和響應處理過程,修改django的輸入或輸出。中介軟體的設計為開發者提供了一種無侵入式的開發方式,增強了django框架的健壯性。我們可以使用中介軟體,在django處理檢視的不同階段對輸入或輸出進行...