中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

flask中before_request與after_request的區別是什么

發布時間:2021-02-18 16:44:31 來源:億速云 閱讀:187 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關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的區別是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大冶市| 襄垣县| 雅安市| 宜州市| 获嘉县| 阳山县| 德保县| 建水县| 丹棱县| 敦煌市| 韶关市| 蚌埠市| 高台县| 南宁市| 仲巴县| 德庆县| 多伦县| 泰宁县| 永德县| 昌黎县| 广东省| 武陟县| 松潘县| 台东县| 枣强县| 沛县| 长宁县| 仁布县| 文化| 刚察县| 阜城县| 岫岩| 三江| 新闻| 什邡市| 玉山县| 江西省| 阜新市| 新宾| 南召县| 鄂伦春自治旗|