本文主要研究的是flask如何截獲所有訪問,以及before_request、after_request修飾器的相關內容,具體如下。
在學習著用flask開發安卓后天接口時,遇到一個需求,就是想截獲所有請求,即在所有請求進入app.route裝飾的函數前先被處理一次。
經過在網上查找資料后,知道了@before_request、@after_request這兩個方法,示例:
@app.before_request def before_request(): ip = request.remote_addr url = request.url print ip, print url
before_request()函數被app.before_request修飾以后,每一次請求到來后,都會先進入函數before_request()中,如上代碼,獲取請求的ip以及url,并打印出來,執行完畢后請求才會正常進入到app.route修飾的函數中響應,如果有多個函數被app.before_request修飾了,那么這些函數會被依次執行。
app.before_request修飾器在開發中用處非常大,比如判斷某個ip是否有惡意訪問行為,從而進行攔截等操作。
此外同理,app.after_request修飾器是在用戶請求得到函數響應后被執行,不過需要注意的是這個執行是在函數返回數據前被調用,即請求已經被app.route修飾的函數響應過了,已經形成了response,但還未返回給用戶的時候,調用的。
總結
以上就是本文關于淺談flask截獲所有訪問及before/after_request修飾器的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
新聞熱點
疑難解答