知識點: 1、請求鉤子
一、概況
Flask的請求鉤子指的是在執行檢視函式前後執行的一些函式,我們可以在這些函式裡面做一些操作。Flask利用裝飾器給我們提供了四種鉤子函式。
- before_first_request:在處理第一個請求前執行。比如連結資料庫操作
- before_request:在每次請求前執行。比如許可權校驗
- after_request:每次請求之後呼叫,前提是沒有未處理的異常丟擲
- teardown_request:每次請求之後呼叫,即使有未處理的異常丟擲
Flask裡面的鉤子跟Django裡面的中介軟體類似。
二、使用
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
print('檢視函式執行')
return 'index page'
# 在第一次請求之前執行.
@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(response):
# response: 就是前面的請求處理完畢之後, 返回的響應資料,前提是檢視函式沒有出現異常
# 如果需要對響應做額外處理,可以再這裡進行
# json.dumps 配置請求鉤子
# response.headers["Content-Type"] = "application/json"
print('after_request')
return response
# 無論檢視函式是否出現異常,每一次請求之後都會呼叫,會接受一個引數,引數是伺服器出現的錯誤資訊
@app.teardown_request
def teardown_request(error):
print('teardown_request: error %s' % error)
if __name__ == '__main__':
app.run(debug=True)
複製程式碼
我們在瀏覽器第一次訪問:
before_first_request
before_request
檢視函式執行
after_request
teardown_request: error None
複製程式碼
我們在重新整理瀏覽器試一下:
before_request
檢視函式執行
after_request
teardown_request: error None
複製程式碼
歡迎關注我的公眾號: