Django中的中介軟體(middleware)

2021-09-26 14:15:19 字數 1271 閱讀 7500

概念:

中介軟體是乙個用來處理django的請求和響應的乙個類,可以改變全域性範圍內django的輸入和輸出。簡單理解就是中介軟體是幫助我們在檢視函式執行之前和執行之後都可以做一些額外的操作。

舉個例子:

中介軟體就好比火車站的每一層安檢,首先檢查車票,然後再檢查是否攜帶危險物品,如果車票或者行李不符合要求,就不能坐上火車(目標)。

由於其影響的是全域性,所以需要謹慎使用,使用不當會影響效能。

(簡單理解就是只要設定了中介軟體,任何請求都會經過中介軟體)

每個中介軟體都負責做一些特定的功能。

我們從瀏覽器發出乙個請求 request,得到乙個響應後的內容 httpresponse ,這個請求傳遞到 django的過程如下:

方法講解

process_response(request,response)方法

它有兩個引數,乙個是request,乙個是response,request就是上述例子中一樣的物件,response是檢視函式返回的物件。該方法必須返回乙個響應物件。

process_view()方法

process_view(self, request, view_func, view_args, view_kwargs)

該方法有四個引數

(1)request是httprequest物件。

(2)view_func是django即將使用的檢視函式。

(3)view_args是將傳遞給檢視的位置引數的列表.

(4)view_kwargs是將傳遞給檢視的關鍵字引數的字典。

process_exception(self, request, exception)

該方法兩個引數:

乙個httprequest物件

乙個exception是檢視函式異常產生的exception物件。

這個方法只有在檢視函式**現異常了才執行,它返回的值可以是乙個none也可以是乙個httpresponse物件。如果是httpresponse物件,django將呼叫模板和中介軟體中的process_response方法,並返回給瀏覽器,否則將預設處理異常。如果返回乙個none,則交給下乙個中介軟體的process_exception方法來處理異常。它的執行順序也是按照中介軟體註冊順序的倒序執行。

Django 中介軟體

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

Django中介軟體

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

Django中介軟體

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