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的調用時從上往下的,在response的處理過程中,則是自下往上的。
django的安裝和運行不需要任何middleware。
編寫自己的中間件:
每個中間件都是一個簡單的python類,類中定義了很多如下的方法:
process_request(self,request)
在django決定調用哪個視圖函數之前
需要返回一個值,可以是None或者HttpResponse對象。如果返回None,則繼續執行。如果返回HttpResponse對象,則停止執行,返回HttpResponse對象。
process_view(self,request,view_func,view_args,view_kwargs)
view_func是django選擇的視圖處理函數(是一個函數對象,而不是一個簡單的字符串),而最后兩個則是非關鍵字參數和關鍵字參數。
它會在調用視圖函數之前調用。也是返回None或者HttpResponse對象
process_template_response(self,request,response)
在render()調用之后,模板調用之前。
process_response(self,request,response)
始終會被調用,在響應時被第一個調用。
process_exception(self,request,exception)
在異常視圖函數調用前調用
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
