国产探花免费观看_亚洲丰满少妇自慰呻吟_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的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 独山县| 平塘县| 措勤县| 林口县| 齐齐哈尔市| 凌海市| 江城| 石楼县| 焦作市| 镇康县| 达孜县| 博罗县| 寻乌县| 防城港市| 澎湖县| 东丰县| 禹城市| 大兴区| 崇左市| 民县| 略阳县| 平阴县| 新田县| 尼玛县| 瓦房店市| 剑阁县| 大关县| 榆林市| 偃师市| 四平市| 峨山| 黄石市| 特克斯县| 塔城市| 宜昌市| 电白县| 吴桥县| 章丘市| 牙克石市| 固镇县| 龙口市|