Django中間件實(shí)現(xiàn)攔截器的方法
1.前言
JavaWeb Struts2的攔截器我們都能很熟悉,在請(qǐng)求交給Action處理之前,先在攔截器中處理,處理完之后再交給Action。
在Django中如何實(shí)現(xiàn)相同的效果?
2.Django中間件
這個(gè)是我的項(xiàng)目的目錄結(jié)構(gòu)。

首先,先在app目錄(也就是我項(xiàng)目的web目錄)中新建一個(gè)文件命名為middleware.py

里面加入以下代碼:
try: from django.utils.deprecation import MiddlewareMixin # Django 1.10.x except ImportError: MiddlewareMixin = object # Django 1.4.x - Django 1.9.x class SimpleMiddleware(MiddlewareMixin): def process_request(self, request): return None def process_response(self, request, response): return response
在process_request中處理請(qǐng)求,process_response處理響應(yīng)。
在process_request方法中,返回值為HttpResponse類型的對(duì)象的時(shí)候不交給普通的控制器處理,直接返回給瀏覽器,返回值為None的時(shí)候,請(qǐng)求處理完之后交給普通的控制器處理。
在settings.py文件的中間件配置中我們剛剛的中間件。

至此利用中間件做攔截器的工作配置完成。
相關(guān)文章
Python+OpenCV實(shí)現(xiàn)相機(jī)標(biāo)定的方法詳解
opencv中內(nèi)置了張正友的棋盤格標(biāo)定法,通過一些姿態(tài)各異的棋盤格圖像,可以標(biāo)定相機(jī)的內(nèi)外參數(shù),本文為大家介紹OpenCV進(jìn)行相機(jī)標(biāo)定的具體方法,希望對(duì)大家有所幫助2023-05-05
Python3開發(fā)環(huán)境搭建詳細(xì)教程
這篇文章主要介紹了Python3開發(fā)環(huán)境搭建詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06
Python運(yùn)行報(bào)錯(cuò)UnicodeDecodeError的解決方法
本文給大家分享的是在Python項(xiàng)目中經(jīng)常遇到的關(guān)于編碼問題的一個(gè)小bug的解決方法以及分析方法,有相同遭遇的小伙伴可以來參考下2016-06-06
Python基礎(chǔ)必備之語法結(jié)構(gòu)詳解
Python語法定義了用于在 Python 編程中創(chuàng)建句子的所有規(guī)則集。如果想更深入地研究 Python 詞法結(jié)構(gòu),需要了解構(gòu)成語句的句法元素,即構(gòu)成 Python 程序的基本單元,涵蓋控制結(jié)構(gòu),在不同代碼組之間引導(dǎo)程序流的構(gòu)造,快跟隨小編一起學(xué)習(xí)一下吧2022-04-04
python 使用遞歸的方式實(shí)現(xiàn)語義圖片分割功能
這篇文章主要介紹了python 使用遞歸的方式實(shí)現(xiàn)語義圖片分割,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
Python linecache.getline()讀取文件中特定一行的腳本
Python中使用標(biāo)準(zhǔn)庫(kù)中的linecache中的getline方法可以從某個(gè)文件中讀取出特定的一行。2008-09-09

