天天看點

django中間件

目錄

中間件概念

自定義中間件process_request,process_response

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

django中間件

如果你想修改請求,例如被傳送到view中的HttpRequest對象。 或者你想修改view傳回的HttpResponse對象,這些都可以通過中間件來實作。

可能你還想在view執行之前做一些操作,這種情況就可以用 middleware來實作。

自定義中間件

中間件中一共有四個方法:

process_request

process_view

process_exception

process_response

當使用者發起請求的時候會依次經過所有的的中間件,這個時候的請求時process_request,最後到達views的函數中,views函數處理後,在依次穿過中間件,這個時候是process_response,最後傳回給請求者。

django中間件

上述截圖中的中間件都是django中的,我們也可以自己定義一個中間件,我們可以自己寫一個類,但是必須繼承<code>MiddlewareMixin</code>

需要導入

django中間件

views.py

myMiddleware.py

結果

注意:如果當請求到達請求2的時候直接不符合條件傳回,即return HttpResponse("Md2中斷"),程式将把請求直接發給中間件2傳回,然後依次傳回到請求者,結果如下:

傳回Md2中斷的頁面,背景列印如下:

流程圖如下:

django中間件