Django 中介軟體Middleware

2021-08-20 23:14:49 字數 2712 閱讀 8426

中介軟體(

middleware

)   

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

setting.py

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

'myweb.middleware.middleware_1', #

第乙個自定義

middleware

,myweb是中介軟體所在的路徑

]

middleware 中都是中介軟體解析:

中介軟體5個基本方法:

process_request(self,request)#接受request之後確定所執行的view之前

process_view(self, request, callback, callback_args, callback_kwargs)#確定了所要執行的view之後 view真正執行之前

process_template_response(self,request,response)#是在檢視函式執行完成後立即執行,但是它有乙個前提條件,那就是檢視函式返回的物件有乙個render()方法(或者表明該物件是乙個templateresponse物件或等價方法)。

process_exception(self, request, exception)#view丟擲異常

process_response(self, request, response)#view 執行之後

注意:前兩個方法是請求的時候執行(屬於request),後三個方法是後台返回時執行(屬於response)

example:

fromdjango.utils.deprecationimportmiddlewaremixin

classmiddleware_1(middlewaremixin):

defprocess_request(self, request):

print(request.get_full_path,'111111111')

print(type(request.get_raw_uri),'111111111')

print(dir(request),'111111111')

print("自定義process_request 1")

return none

def

process_view(

self

, request

, callback

, callback_args

, callback_kwargs

):       

print("

自定義process_view 1"

)       

return none

defprocess_response(self, request, response):

print("自定義process_response 1")

returnresponse

defprocess_exception(self, request, exception):

print(request,exception,'**********')

print("自定義process_exception 1")

啟動django,傳送乙個請求、

Django 中介軟體

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

Django中介軟體

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

Django中介軟體

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