1、什麼是中介軟體
顧名思義中介軟體就是介於request和response處理之間的一道處理過程,相對比較輕量級,並且在全域性上改變django的輸入和輸出。因為改變的是全域性,所以需要謹慎使用,用不好反而會影響效能。
如果你想修改請求,例如被傳送到view中的httprequest物件。 或者你想修改view返回的httpresponse物件,這些都可以通過中介軟體來實現。
2、中介軟體在django整體中的示意圖
3、自定義中介軟體
中介軟體一共有四個方法
process_request #使用者發起請求時會經過
process_view #當到達url關係對映後**檢視函式
process_exception #檢視函式出錯時
process_response #給使用者響應時經過
# 注意:
這四個方法中,process_request和process_view一般是返回none的,因為如果在這裡返回response物件的話,process_response會接收這個物件直接返回給使用者。
process_exception一般是捕獲異常然後放到responset物件中返回,如httpresponse(exception)。
> 一般只會用到request和response,當只有這兩個方法時
執行流程如下
>當有response、response和view時,執行流程如下
>當四個方法都有時執行流程如下
3、應用場景
> 伺服器ip訪問頻率限制
> url過濾、使用者校驗
Django之中介軟體
django中的中介軟體 middleware 在django中,中介軟體其實就是乙個類,在請求到來和結束後,django會根據自己的規則在合適的時機執行中介軟體中相應的方法。在django專案的settings模組中,有乙個middleware classes變數,其中每乙個元素就是乙個中介軟體 ...
Django 之 中介軟體
使用裝飾器繞過中介軟體csrf token 從全域性角度改變 django 框架的輸入和輸出 不宜過多 不宜太複雜 middleware 模組名為 mymiddlewares,類名為 md1 mymiddlewares.md1 from django.utils.deprecation import...
Django學習之中介軟體
1 概念 中介軟體,是介於request與response處理之間的一道處理過程,相對比較輕量級,並且在全域性上改變django的輸入 與輸出。因為改變的是全域性,所以需要謹慎實用,用不好會影響到效能。比如你想修改請求,例如被傳送到view中的httprequest物件,或者修改view返回的htt...