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

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

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

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

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

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

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

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

代碼測試

from flask import Flask
from flask import abort

app = Flask(__name__)


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


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


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


# 請每一次請求之后都會調用,會接受一個參數(shù),參數(shù)是服務器出現(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次請求時的打印:
before_request
after_request
teardown_request

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論

澜沧| 全椒县| 江山市| 上思县| 青州市| 南涧| 内黄县| 北流市| 丁青县| 辽中县| 新竹县| 珠海市| 玉林市| 师宗县| 霸州市| 中方县| 临高县| 宁夏| 西乌| 莱阳市| 高青县| 罗江县| 沙湾县| 定兴县| 龙州县| 长丰县| 昌黎县| 桐梓县| 岳普湖县| 龙门县| 建昌县| 屏边| 黎平县| 永丰县| 鄂尔多斯市| 唐山市| 伊通| 莱芜市| 伊金霍洛旗| 乐都县| 寿宁县|