Django中介軟體

2021-09-09 06:32:18 字數 1660 閱讀 3879

中介軟體是django請求/響應處理的鉤子框架。這是乙個輕量級的低階「外掛程式」系統,用於在全域性範圍內改變django的輸入或輸出。 每個中介軟體元件都負責完成一些特定的功能。例如,django包含乙個中介軟體元件authenticationmiddleware,它使用會話將     使用者與請求相關聯。

說的直白一點中介軟體是幫助我們在檢視函式執行之前和執行之後都可以做一些額外的操作,它本質上就是乙個自定義類,類中定義了幾個方法,django框架會在請求的特定的時間去執行這些方法。

這些都是中介軟體

中介軟體可以定義五個方法,分別是:(主要的是process_request和process_response)

以上方法的返回值可以是none或乙個httpresponse物件,如果是none,則繼續按照django定義的規則向後繼續執行,如果是httpresponse物件,則直接將該物件返回給使用者。

5個固定的方法

執行順序:

按照註冊的順序(在settings.py裡面設定中 從上到下的順序)

何時執行:

請求從wsgi拿到之後

返回值:

返回none,繼續執行後續的中介軟體的process_request方法

返回response , 不執行後續的中介軟體的process_request方法

執行順序:

按照註冊順序的倒序(在settings.py裡面設定中 從下到上的順序)

何時執行:

請求有響應的時候

返回值:

必須返回乙個response物件

執行順序:

按照註冊的順序(在settings.py裡面設定中 從上到下的順序)

何時執行:

在urls.py中找到對應關係之後 在執行真正的檢視函式之前

返回值:

返回none,繼續執行後續的中介軟體的process_view方法

返回response,

執行順序:

按照註冊順序的倒序(在settings.py裡面設定中 從下到上的順序)

何時執行:

檢視函式中丟擲異常的時候才執行

返回值:

返回none,繼續執行後續中介軟體的process_exception

返回response,

執行順序:

按照註冊順序的倒序(在settings.py裡面設定中 從下到上的順序)

何時執行:

檢視函式執行完,在執行檢視函式返回的響應物件的render方法之前 

返回值:

返回none,繼續執行後續中介軟體的process_exception

返回response,

3. 有異常就執行 process_exception

4. 如果檢視函式返回的響應物件有render方法,就執行process_template_response

5. process_response

Django 中介軟體

django中的中介軟體是乙個輕量級 底層的外掛程式系統,可以介入django的請求和響應處理過程,修改django的輸入或輸出。中介軟體的執行過程如下圖所示 django在中介軟體中預置了五個方法,這五個方法的區別在於不同的階段執行,對輸入或輸出進行干預,方法如下 def init self pa...

Django中介軟體

給檢視函式加裝飾器判斷使用者是否登入,把沒有登入的請求跳轉到登入頁面,我們通過給幾個特定檢視函式加裝飾器實現了這個需求,但是這樣做比較繁瑣,用django中的中介軟體會比較簡潔 什麼是中介軟體 中介軟體是幫助我們再檢視函式執行之前和執行之後都可以做一些額外的操作,它本質上就是乙個自定義類,類中定義了...

Django中介軟體

什麼是中介軟體?django中的中介軟體是乙個輕量級 底層的外掛程式系統,可以介入django的請求和響應處理過程,修改django的輸入或輸出。中介軟體的設計為開發者提供了一種無侵入式的開發方式,增強了django框架的健壯性。我們可以使用中介軟體,在django處理檢視的不同階段對輸入或輸出進行...