中間件:中間件是Django架構給我們預留的函數接口,讓我們可以幹預請求和應答的過程。
中間件應用場景:
1 IP限制
2 url通路過濾
3 緩存(請求過來後,中間件看有沒有緩存資料,有的話直接傳回給使用者,沒有的話再執行視圖函數)
中間件預留函數
1 __init__(self) 伺服器響應第一個請求時候調用
2 process_request(self,request): 參生request對象,進行url比對之前調用
3 process_view(self,request,view_func, *view_args, **view_kwargs): url比對之後,視圖函數調用之前調用
4 process_response(self, request, response): 視圖函數調用之後,響應傳回之前調用
5 process_exception(self,request,exception) 視圖函數出現異常會調用這個函數,代碼正确不調用
中間件注冊順序如下表
舉例如下