最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

flask框架中勾子函數(shù)的使用詳解

 更新時間:2018年08月01日 09:17:34   作者:skaarl  
這篇文章主要介紹了flask框架中勾子函數(shù)的使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

在客戶端和服務(wù)器交互的過程中,有些準(zhǔn)備工作或掃尾工作需要處理,比如:

  • 在請求開始時,建立數(shù)據(jù)庫連接;
  • 在請求開始時,根據(jù)需求進(jìn)行權(quán)限校驗(yàn);
  • 在請求結(jié)束時,指定數(shù)據(jù)的交互格式;

為了讓每個視圖函數(shù)避免編寫重復(fù)功能的代碼,F(xiàn)lask提供了通用設(shè)施的功能,即請求鉤子。

請求鉤子是通過裝飾器的形式實(shí)現(xiàn),F(xiàn)lask支持如下四種請求鉤子:

  • before_first_request
    • 在處理第一個請求前執(zhí)行
  • before_request
    • 在每次請求前執(zhí)行
    • 如果在某修飾的函數(shù)中返回了一個響應(yīng),視圖函數(shù)將不再被調(diào)用
  • after_request
    • 如果沒有拋出錯誤,在每次請求后執(zhí)行
    • 接受一個參數(shù):視圖函數(shù)作出的響應(yīng)
    • 在此函數(shù)中可以對響應(yīng)值在返回之前做最后一步修改處理
    • 需要將參數(shù)中的響應(yīng)在此參數(shù)中進(jìn)行返回
  • teardown_request
    • 在每次請求后執(zhí)行
    • 接受一個參數(shù):錯誤信息,如果有相關(guān)錯誤拋出

代碼測試

from flask import Flask
from flask import abort

app = Flask(__name__)


# 在第一次請求之前調(diào)用,可以在此方法內(nèi)部做一些初始化操作
@app.before_first_request
def before_first_request():
  print("before_first_request")


# 在每一次請求之前調(diào)用,這時候已經(jīng)有請求了,可能在這個方法里面做請求的校驗(yàn)
# 如果請求的校驗(yàn)不成功,可以直接在此方法中進(jìn)行響應(yīng),直接return之后那么就不會執(zhí)行視圖函數(shù)
@app.before_request
def before_request():
  print("before_request")
  # if 請求不符合條件:
  #   return "laowang"


# 在執(zhí)行完視圖函數(shù)之后會調(diào)用,并且會把視圖函數(shù)所生成的響應(yīng)傳入,可以在此方法中對響應(yīng)做最后一步統(tǒng)一的處理
@app.after_request
def after_request(response):
  print("after_request")
  response.headers["Content-Type"] = "application/json"
  return response


# 請每一次請求之后都會調(diào)用,會接受一個參數(shù),參數(shù)是服務(wù)器出現(xiàn)的錯誤信息
@app.teardown_request
def teardown_request(e):
  print("teardown_request")


@app.route('/')
def index():
  return 'index'

if __name__ == '__main__':
  app.run(debug=True)

在第1次請求時的打?。?br /> before_first_request
before_request
after_request
teardown_request

在第2次請求時的打?。?br /> before_request
after_request
teardown_request

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

曲水县| 兴安县| 湘潭县| 台中市| 酉阳| 叙永县| 咸阳市| 吉水县| 渑池县| 文成县| 甘洛县| 丰宁| 会同县| 东乌珠穆沁旗| 林芝县| 井研县| 泰州市| 垫江县| 宣威市| 红桥区| 吴江市| 左权县| 综艺| 平果县| 淄博市| 昆明市| 宜昌市| 靖宇县| 容城县| 鸡泽县| 徐水县| 温宿县| 县级市| 隆回县| 松阳县| 玛纳斯县| 白城市| 马尔康县| 乐陵市| 南漳县| 广宗县|