目錄
中間件概念
自定義中間件process_request,process_response
中間件顧名思義,是介于request與response處理之間的一道處理過程,相對比較輕量級,并且在全局上改變django的輸入與輸出。因為改變的是全局,是以需要謹慎實用,用不好會影響到性能。

如果你想修改請求,例如被傳送到view中的HttpRequest對象。 或者你想修改view傳回的HttpResponse對象,這些都可以通過中間件來實作。
可能你還想在view執行之前做一些操作,這種情況就可以用 middleware來實作。
自定義中間件
中間件中一共有四個方法:
process_request
process_view
process_exception
process_response
當使用者發起請求的時候會依次經過所有的的中間件,這個時候的請求時process_request,最後到達views的函數中,views函數處理後,在依次穿過中間件,這個時候是process_response,最後傳回給請求者。
上述截圖中的中間件都是django中的,我們也可以自己定義一個中間件,我們可以自己寫一個類,但是必須繼承<code>MiddlewareMixin</code>
需要導入
views.py
myMiddleware.py
結果
注意:如果當請求到達請求2的時候直接不符合條件傳回,即return HttpResponse("Md2中斷"),程式将把請求直接發給中間件2傳回,然後依次傳回到請求者,結果如下:
傳回Md2中斷的頁面,背景列印如下:
流程圖如下: