django
中間件(Middleware)
存在與request和response之間,
激活中間件(activating middleware)
在django項目的settings.py文件中將你的中間件添加到 MIDDLEWARE_CLASSES
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
在request的處理過程中,middleware的調(diào)用時從上往下的,在response的處理過程中,則是自下往上的。
django的安裝和運行不需要任何middleware。
編寫自己的中間件:
每個中間件都是一個簡單的python類,類中定義了很多如下的方法:
process_request(self,request)
在django決定調(diào)用哪個視圖函數(shù)之前
需要返回一個值,可以是None或者HttpResponse對象。如果返回None,則繼續(xù)執(zhí)行。如果返回HttpResponse對象,則停止執(zhí)行,返回HttpResponse對象。
process_view(self,request,view_func,view_args,view_kwargs)
view_func是django選擇的視圖處理函數(shù)(是一個函數(shù)對象,而不是一個簡單的字符串),而最后兩個則是非關(guān)鍵字參數(shù)和關(guān)鍵字參數(shù)。
它會在調(diào)用視圖函數(shù)之前調(diào)用。也是返回None或者HttpResponse對象
process_template_response(self,request,response)
在render()調(diào)用之后,模板調(diào)用之前。
process_response(self,request,response)
始終會被調(diào)用,在響應(yīng)時被第一個調(diào)用。
process_exception(self,request,exception)
在異常視圖函數(shù)調(diào)用前調(diào)用
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

