淺談flask截獲所有訪問及before/after_request修飾器
本文主要研究的是flask如何截獲所有訪問,以及before_request、after_request修飾器的相關(guān)內(nèi)容,具體如下。
在學(xué)習(xí)著用flask開發(fā)安卓后天接口時(shí),遇到一個(gè)需求,就是想截獲所有請(qǐng)求,即在所有請(qǐng)求進(jìn)入app.route裝飾的函數(shù)前先被處理一次。
經(jīng)過在網(wǎng)上查找資料后,知道了@before_request、@after_request這兩個(gè)方法,示例:
@app.before_request def before_request(): ip = request.remote_addr url = request.url print ip, print url
before_request()函數(shù)被app.before_request修飾以后,每一次請(qǐng)求到來(lái)后,都會(huì)先進(jìn)入函數(shù)before_request()中,如上代碼,獲取請(qǐng)求的ip以及url,并打印出來(lái),執(zhí)行完畢后請(qǐng)求才會(huì)正常進(jìn)入到app.route修飾的函數(shù)中響應(yīng),如果有多個(gè)函數(shù)被app.before_request修飾了,那么這些函數(shù)會(huì)被依次執(zhí)行。
app.before_request修飾器在開發(fā)中用處非常大,比如判斷某個(gè)ip是否有惡意訪問行為,從而進(jìn)行攔截等操作。
此外同理,app.after_request修飾器是在用戶請(qǐng)求得到函數(shù)響應(yīng)后被執(zhí)行,不過需要注意的是這個(gè)執(zhí)行是在函數(shù)返回?cái)?shù)據(jù)前被調(diào)用,即請(qǐng)求已經(jīng)被app.route修飾的函數(shù)響應(yīng)過了,已經(jīng)形成了response,但還未返回給用戶的時(shí)候,調(diào)用的。
總結(jié)
以上就是本文關(guān)于淺談flask截獲所有訪問及before/after_request修飾器的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
Python使用MapReduce編程模型統(tǒng)計(jì)銷量
MapReduce是面向大數(shù)據(jù)并行處理的計(jì)算模型、框架和平臺(tái),是一種計(jì)算引擎,可以把我們對(duì)大批量數(shù)據(jù)的計(jì)算通過抽象成map與reduce兩個(gè)子任務(wù)進(jìn)行計(jì)算從而更快的得到想要的結(jié)果2022-04-04Python?flask框架post接口調(diào)用示例
這篇文章主要介紹了Python?flask框架post接口調(diào)用,結(jié)合實(shí)例形式分析了基于flask框架的post、get請(qǐng)求響應(yīng)及接口調(diào)用相關(guān)操作技巧,需要的朋友可以參考下2019-07-07python+gdal+遙感圖像拼接(mosaic)的實(shí)例
這篇文章主要介紹了python+gdal+遙感圖像拼接(mosaic)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-03-03使用python庫(kù)xlsxwriter庫(kù)來(lái)輸出各種xlsx文件的示例
這篇文章主要介紹了使用python庫(kù)xlsxwriter庫(kù)來(lái)輸出各種xlsx文件的示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09pytorch 求網(wǎng)絡(luò)模型參數(shù)實(shí)例
今天小編就為大家分享一篇pytorch 求網(wǎng)絡(luò)模型參數(shù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-12-12Python字符串和二進(jìn)制字符串之間的轉(zhuǎn)換方法示例
python中沒有0-1形式的二進(jìn)制類型,但我們依然可以存儲(chǔ)二進(jìn)制類型的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Python字符串和二進(jìn)制字符串之間的轉(zhuǎn)換方法,需要的朋友可以參考下2023-06-06pycharm如何debug for循環(huán)里面的錯(cuò)誤值(推薦)
一般debug時(shí),在for循環(huán)里面的話,需要自己一步一步點(diǎn),如果循環(huán)幾百次那種就比較麻煩,此時(shí)可以采用try except的方式來(lái)解決,這篇文章主要介紹了pycharm如何debug for循環(huán)里面的錯(cuò)誤值,需要的朋友可以參考下2024-07-07python爬蟲入門教程--快速理解HTTP協(xié)議(一)
http協(xié)議是互聯(lián)網(wǎng)里面最重要,最基礎(chǔ)的協(xié)議之一,我們的爬蟲需要經(jīng)常和http協(xié)議打交道。下面這篇文章主要給大家介紹了關(guān)于python爬蟲入門之快速理解HTTP協(xié)議的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-05-05