国产探花免费观看_亚洲丰满少妇自慰呻吟_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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 麻阳| 奉化市| 大冶市| 新兴县| 娱乐| 龙州县| 喀喇| 滨州市| 泸水县| 开江县| 沅江市| 泸西县| 馆陶县| 南靖县| 南通市| 海门市| 元朗区| 禄劝| 久治县| 固原市| 黑山县| 留坝县| 宝坻区| 乐昌市| 盐池县| 德钦县| 遂宁市| 夏河县| 秦安县| 弥勒县| 搜索| 平遥县| 怀仁县| 河津市| 渭源县| 青冈县| 凤冈县| 平果县| 库尔勒市| 新巴尔虎右旗| 临武县|