django 中介軟體

2021-09-27 18:13:44 字數 1839 閱讀 4389

官方的說法:中介軟體是乙個用來處理django的請求和響應的框架級別的鉤子。它是乙個輕量、低階別的外掛程式系統,用於在全域性範圍內改變django的輸入和輸出。每個中介軟體元件都負責做一些特定的功能。

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

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

django 中的中介軟體(middleware),在django中,中介軟體其實就是乙個類,在請求到來和結束後,django會根據自己的規則在合適的時機執行中介軟體中相應的方法。

middleware = [

'django.middleware.security.securitymiddleware',

'django.contrib.sessions.middleware.sessionmiddleware',

'django.middleware.common.commonmiddleware',

'django.middleware.csrf.csrfviewmiddleware',

'django.contrib.auth.middleware.authenticationmiddleware',

'django.contrib.messages.middleware.messagemiddleware',

'django.middleware.clickjacking.xframeoptionsmiddleware',

]

與mange.py在同一目錄下的資料夾 moke/middleware下的auth.py檔案中的authentication類

中介軟體中可以定義五個方法,分別是:

1、建立中介軟體類

class requestexeute(object):

def process_request(self,request):

pass

def process_view(self, request, callback, callback_args, callback_kwargs):

i =1

pass

def process_exception(self, request, exception):

pass

def process_response(self, request, response):

return response

2、註冊中介軟體

middleware_classes = (

'django.contrib.sessions.middleware.sessionmiddleware',

'django.middleware.common.commonmiddleware',

'django.middleware.csrf.csrfviewmiddleware',

'django.contrib.auth.middleware.authenticationmiddleware',

'django.contrib.auth.middleware.sessionauthenticationmiddleware',

'django.contrib.messages.middleware.messagemiddleware',

'django.middleware.clickjacking.xframeoptionsmiddleware',

'moke.middleware.auth.requestexeute',

)

詳細中間介看:liwenzhou

Django 中介軟體

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

Django中介軟體

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

Django中介軟體

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