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

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