django之中介軟體

2022-09-05 23:12:25 字數 1125 閱讀 5142

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...