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