Django中間件
1. 中間件概念
中間件是一個用來處理Django的請求和響應的框架級別的鉤子。它是一個輕量、低級別的插件系統,用於在全局範圍內改變Django的輸入和輸出。每個中間件組件都負責做一些特定的功能。作用在wsgiref和url.py之間,客戶端往服務端傳遞消息時根據HTTP協議傳送的信息會先正向經過中間件,服務端給客戶端傳遞消息時會反向經過中間件
2. 如何自定義中間件
1. 按照格式要求寫一個類
2. 把我們寫好的類在settings.py註冊到MIDDLEWARE配置項的列表中
3. 每一個中間件中五個可以被重寫的方法:
1. process_request(self,request)
1. 何時執行在 urls.py之前執行
2. 執行的順序 按照在列表中註冊的順序依次執行
3. 返回值 1. 返回None, 不錯任何處理直接進行下一步
2. 返回響應對象, 直接跳出(後續中間件的process_request、不執行urls.py和views.py)返回響應
2. process_view(self, request, view_func, view_args, view_kwargs)
1. 執行時間: 在urls.py之後在執行真正的視圖函數之前
2. 執行順序 按照在列表中註冊的順序依次執行
3. 返回值 1. 返回None, 放行 2. 返回響應對象,就直接跳出,倒序依次執行所有中間件的process_response方法
3. process_template_response(self,request,response)
4. process_exception(self, request, exception)
5. process_response(self, request, response)
1. 何時執行在 views.py返回響應對象之後執行
2. 執行的順序 按照在列表中註冊的倒序依次執行
3. 返回值 必須要有返回值,返回要是 響應對象
Django中間件