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

首頁 > 編程 > Python > 正文

flask框架中勾子函數的使用詳解

2020-02-15 22:37:22
字體:
來源:轉載
供稿:網友

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

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

為了讓每個視圖函數避免編寫重復功能的代碼,Flask提供了通用設施的功能,即請求鉤子。

請求鉤子是通過裝飾器的形式實現,Flask支持如下四種請求鉤子:

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

代碼測試

from flask import Flaskfrom flask import abortapp = Flask(__name__)# 在第一次請求之前調用,可以在此方法內部做一些初始化操作@app.before_first_requestdef before_first_request():  print("before_first_request")# 在每一次請求之前調用,這時候已經有請求了,可能在這個方法里面做請求的校驗# 如果請求的校驗不成功,可以直接在此方法中進行響應,直接return之后那么就不會執行視圖函數@app.before_requestdef before_request():  print("before_request")  # if 請求不符合條件:  #   return "laowang"# 在執行完視圖函數之后會調用,并且會把視圖函數所生成的響應傳入,可以在此方法中對響應做最后一步統一的處理@app.after_requestdef after_request(response):  print("after_request")  response.headers["Content-Type"] = "application/json"  return response# 請每一次請求之后都會調用,會接受一個參數,參數是服務器出現的錯誤信息@app.teardown_requestdef teardown_request(e):  print("teardown_request")@app.route('/')def index():  return 'index'if __name__ == '__main__':  app.run(debug=True)

在第1次請求時的打印:
before_first_request
before_request
after_request
teardown_request

在第2次請求時的打印:
before_request
after_request
teardown_request

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安庆市| 靖安县| 泾源县| 搜索| 惠东县| 南投县| 林甸县| 桃园市| 锡林郭勒盟| 乡城县| 禄丰县| 遂宁市| 图们市| 巨鹿县| 仁布县| 合肥市| 济阳县| 敖汉旗| 海盐县| 克什克腾旗| 永吉县| 习水县| 东莞市| 潞西市| 墨竹工卡县| 三亚市| 新干县| 广河县| 长岭县| 女性| 凤凰县| 南召县| 汉沽区| 延津县| 南雄市| 云浮市| 长顺县| 六安市| 乌鲁木齐县| 海口市| 楚雄市|