Flask笔记:hook钩子函数
鉤子函數,即hook函數,定義鉤子函數時使用對應的裝飾器即可。鉤子函數的作用可以理解為在正常代碼的某個特定節點插入定義好的鉤子函數。
常用的鉤子函數:
before_first_request:在項目部署好后,服務器處理第一次請求之前執行。
before_request:在每次請求之前執行,即在請求到達服務器后,執行具體的視圖函數之前執行。
teardown_appcontext:在每次請求之后執行(無論是否發生了異常)。
template_filter:自定義在jinja2模板中的過濾器,返回處理后的值到模板中,可以參考jinja2中過濾器的使用。
context_processor:上下文處理器,返回一個字典,字典的項在所有的HTML模板中都可以直接使用,使用的時候引用對應的key即可。這個功能類似于“flask.g”對象,不同的之處在于g對象用于py代碼中,而此鉤子函數則用于HTML模板中。
errorhandler:錯誤處理,請求發生錯誤后,會去執行此裝飾器定義的鉤子函數。需要注意的是:1、使用時需要給裝飾器中傳入對應的狀態碼;2、定義此鉤子函數時必須有一個error參數;3、此鉤子函數應該返回對應的狀態碼,如果不返回對應的狀態碼的話,瀏覽器會認為這是正常返回的頁面,并沒有發生錯誤。必要時可以使用“from flask import abort”手動拋出錯誤,如abort(404)則是拋出一個404錯誤。
errorhandler鉤子函數簡單示例:
# 給裝飾器傳入對應的狀態碼
# 發生404錯誤時,會執行此函數,并將此函數的返回結果返回到瀏覽器
@app.errorhandler(404)
def page_not_found(error):
"""
定義此鉤子函數時必須有一個error參數,無論函數中是否用得到
"""
# 此鉤子函數應該返回對應的狀態碼,告訴瀏覽器發生什么錯誤,而不是正常返回的結果
return '訪問的頁面不存在!', 404
總結
以上是生活随笔為你收集整理的Flask笔记:hook钩子函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: asp编程注意点
- 下一篇: 怎么创建具有真实纹理的CG场景岩石?