知識點: 一、請求鉤子python
Flask的請求鉤子指的是在執行視圖函數先後執行的一些函數,咱們能夠在這些函數裏面作一些操做。Flask利用裝飾器給咱們提供了四種鉤子函數。數據庫
Flask裏面的鉤子跟Django裏面的中間件相似。json
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)
複製代碼
咱們在瀏覽器第一次訪問:flask
before_first_request
before_request
視圖函數執行
after_request
teardown_request: error None
複製代碼
咱們在刷新瀏覽器試一下:瀏覽器
before_request
視圖函數執行
after_request
teardown_request: error None
複製代碼
歡迎關注個人公衆號:服務器