什麼是請求鉤子?說白了,就是在執行視圖函數前後你可以進行一些處理,Flask使用裝飾器爲我們提供了註冊通用函數的功能。
- before_first_request:在處理第一個請求前執行
- before_request:在每次請求前執行
- after_request:每次請求之後調用,前提是沒有未處理的異常拋出
- teardown_request:每次請求之後調用,即使有未處理的異常拋出
from flask import Flask, abort
app = Flask(__name__)
@app.before_first_request
def before_first_request():
print('before_first_request')
@app.before_request
def before_request():
print('before_request')
@app.after_request
def after_request(resp):
print('after_request')
return resp
@app.teardown_request
def teardown_request(e):
print('teardown_request')
@app.route("/")
def view_fn():
return "view_fn"
if __name__ == "__main__":
app.run()
第一次請求:
頁面輸出:view_fn
控制檯輸出: before_first_request
before_request
after_request
teardown_request
第一次請求:
頁面輸出:view_fn
控制檯輸出: before_request
after_request
teardown_request