国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

淺談flask中的before_request與after_request

2020-02-22 22:54:57
字體:
來源:轉載
供稿:網友

本文主要是對flask中的before_request與after_request用法做一個簡單的分析,具體實例和介紹如下。

使用before_request 和 after_request的方法都非常簡單,使用 @app.before_request 或者@app.after_request 修飾期望在請求前或請求后執行的函數即可

示例:

@app.before_request def before_request():   if not m_ip_range.is_ip_strict():     return   ranges = m_ip_range.get_range()   ip_int = utils.ip_to_int(request.remote_addr)   yes = False   for item in ranges:     if item['is_used']==0:       continue     if ip_int >= item['ip_start'] and ip_int <= item['ip_end']:       yes = True       break   if not yes:     abort(400) 

before_request()函數被修飾以后,每一次請求到來后,都會先執行它,如果沒問題即沒有執行到abort(400),那么就會進入到正常的被app.route修飾的函數中進行響應,如果有多個函數被app.before_request修飾了,那么這些函數會被依次執行。

你很關心這個before_request裝飾器有什么用,其實它的用處非常大,比如我們希望能對ip地址進行過濾,雖然你可以使用nginx,但我們也可以使用before_request來做,使用nginx,我們不得不手動的進行設置,但如果是用flask自身的before_request機制,我們可以在程序判斷出某個ip有惡意訪問行為后將其加入到緩存當中(redis),每次請求到來時,由before_request來判斷這個ip是不是合法的。

被app.after_request修飾過的函數會在請求得到相應后返回給用戶前被調用,也就是說,這個時候,請求已經被app.route裝飾的函數響應過了,已經形成了response,我們在這個時候做一些操作,flask有一個插件叫 flask-compress,是對響應結果進行壓縮的,它就是用after_request的這個機制,在response返回前對數據進行了壓縮,如果你有別的想要操作的事情,同樣可以使用after_request來完成。

總結

以上就是本文關于淺談flask中的before_request與after_request的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 庆元县| 惠来县| 丘北县| 乌拉特中旗| 庆安县| 策勒县| 徐州市| 南陵县| 岳阳县| 定安县| 仙游县| 甘肃省| 鄢陵县| 舒兰市| 乡宁县| 雅安市| 新民市| 贞丰县| 大厂| 平乡县| 尼玛县| 毕节市| 阳城县| 彰武县| 辽阳县| 东丽区| 石楼县| 北辰区| 玛多县| 余江县| 眉山市| 普安县| 郯城县| 河西区| 桐梓县| 崇礼县| 乌鲁木齐县| 石门县| 浏阳市| 龙川县| 南京市|