# 1.11 版本的相容寫法,當然你也可以自己手寫乙個類,不是很麻煩,我使用繼承
# 每乙個類都可以根據需要提供不同的鉤子,這些鉤子組成鉤子列表
from django.utils.deprecation import middlewaremixin
class
row1
(middlewaremixin):
defprocess_request
(self, request):
print('row1 請求', request)
print('row1 響應', request, response)
return response
defprocess_view
(self, request, view_func, view_args, view_kwargs):
print('row1 view', view_func)
class
row2
(middlewaremixin):
defprocess_request
(self, request):
print('row2 請求', request)
defprocess_response
(self, request, response):
print('row2 響應', request, response)
print('row3 請求', request)
defprocess_response
(self, request, response):
print('row3 響應', request, response)
# raise exception('異常')
return httpresponse("世界如此美妙")
july 29, 2017 - 05:17:13
django version 1.11, using settings 'test6.settings'
starting development server at
quit the server with control-c.
生成應用
row1 請求
get '/'>
row2 請求
get '/'>
row3 請求
get '/'>
row1 view
index
at0x1044e36a8>
row2 view
index
at0x1044e36a8>
row3 view
index
at0x1044e36a8>
row3 響應
get '/'>
status_code=200, "text/html; charset=utf-8">
row2 響應
get '/'>
status_code=200, "text/html; charset=utf-8">
row1 響應
* 上第二個網路圖
Django 中介軟體
django中的中介軟體是乙個輕量級 底層的外掛程式系統,可以介入django的請求和響應處理過程,修改django的輸入或輸出。中介軟體的執行過程如下圖所示 django在中介軟體中預置了五個方法,這五個方法的區別在於不同的階段執行,對輸入或輸出進行干預,方法如下 def init self pa...
Django中介軟體
給檢視函式加裝飾器判斷使用者是否登入,把沒有登入的請求跳轉到登入頁面,我們通過給幾個特定檢視函式加裝飾器實現了這個需求,但是這樣做比較繁瑣,用django中的中介軟體會比較簡潔 什麼是中介軟體 中介軟體是幫助我們再檢視函式執行之前和執行之後都可以做一些額外的操作,它本質上就是乙個自定義類,類中定義了...
Django中介軟體
什麼是中介軟體?django中的中介軟體是乙個輕量級 底層的外掛程式系統,可以介入django的請求和響應處理過程,修改django的輸入或輸出。中介軟體的設計為開發者提供了一種無侵入式的開發方式,增強了django框架的健壯性。我們可以使用中介軟體,在django處理檢視的不同階段對輸入或輸出進行...