django的中介軟體 介紹與重寫

2021-08-28 14:42:28 字數 1572 閱讀 5839

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

在django專案的settings模組中,有乙個 middleware_classes 變數,其中每乙個元素就是乙個中介軟體, 如下:

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',

'django.middleware.security.securitymiddleware',

)

在專案同名資料夾裡面建立新的叫middleware.py的檔案,在裡面重寫中間類:

class newmid():

def __init__(self):

print('這是hi我們的中介軟體的init')

def process_request(self, request):

'''處理請求之前'''

print('process_request')

def process_view(self,request,view_func,*args,**kwargs):

'''處理檢視之前'''

print('process_view')

# def process_response(self, request, response):

# '''處理響應完成之後'''

# print('process_response')

def process_exception(self,request,exception):

'''異常處理'''

# raise exception('我是異常') 寫在檢視裡面,這裡做的示範

print('process_exception')

然後在專案資料夾的setting裡面middleware_classes裡,註冊並關聯這個這個中間類:

'watercar.middleware.newmid',     #與minddleware.newmid 產生關聯
這樣就完成了中介軟體的重寫,如果你想在』』『處理請求之前』』』、』』『處理檢視之前』』』、』』『處理響應完成之後』』』 等,這些時間裡做什麼就直接可以做了。

Django 中介軟體

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

Django中介軟體

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

Django中介軟體

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