Flask框架鉤子函數(shù)功能與用法分析
本文實(shí)例講述了Flask框架鉤子函數(shù)功能與用法。分享給大家供大家參考,具體如下:
在Flask中鉤子函數(shù)是使用特定的裝飾器的函數(shù)。為什么叫做鉤子函數(shù)呢,是因?yàn)殂^子函數(shù)可以在正常執(zhí)行的代碼中,插入一段自己想要執(zhí)行的代碼,那么這種函數(shù)就叫做鉤子函數(shù)。
before_first_request:Flask項(xiàng)目第一次部署后會(huì)執(zhí)行的鉤子函數(shù)。before_request:請(qǐng)求已經(jīng)到達(dá)了Flask,但是還沒(méi)有進(jìn)入到具體的視圖函數(shù)之前調(diào)用。一般這個(gè)就是在函數(shù)之前,我們可以把一些后面需要用到的數(shù)據(jù)先處理好,方便視圖函數(shù)使用。
before_request
@app.before_first_request
def first_request():
print('只有在處理第一次請(qǐng)求之前執(zhí)行')
@app.before_request
def before_request():
print('在視圖函數(shù)執(zhí)行之前執(zhí)行')
context_rocessor
只用這個(gè)鉤子函數(shù),必須返回一個(gè)字典。這個(gè)字典的值在所有模板中都可以使用。這個(gè)鉤子函數(shù)的作用是,如果一些在很多模板中都要用到的變量,那么就可以使用這個(gè)鉤子函數(shù)來(lái)返回,而不是在每個(gè)視圖函數(shù)匯總的render_template中去寫(xiě),這樣可以讓代碼更加簡(jiǎn)潔和好維護(hù)。
@app.context_processor
def context_processor():
return {{'current_user':'xxx'}}
errorhandler
在發(fā)生異常的時(shí)候,比如404,500錯(cuò)誤,自定義錯(cuò)誤的頁(yè)面,在errorhangdler裝飾的鉤子函數(shù)下:
1. 要返回狀態(tài)碼
2. 必須寫(xiě)一個(gè)參數(shù),來(lái)接受錯(cuò)誤的信息
使用flask.abort可以手動(dòng)的拋出相應(yīng)的錯(cuò)誤,比如開(kāi)發(fā)者發(fā)現(xiàn)參數(shù)不正確的時(shí)候可以手動(dòng)的拋出一個(gè)404錯(cuò)誤。
@app.errorhandler(500)
def server_error(error):
return render_template('500.html'),500
@app.errorhandler(404)
def page_not_found(error):
return render_template('404.html'),404
希望本文所述對(duì)大家基于flask框架的Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
python 使用pdfminer3k 讀取PDF文檔的例子
今天小編就為大家分享一篇python 使用pdfminer3k 讀取PDF文檔的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
opencv實(shí)現(xiàn)圖像旋轉(zhuǎn)效果
這篇文章主要為大家詳細(xì)介紹了opencv實(shí)現(xiàn)圖像旋轉(zhuǎn)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03
Python實(shí)現(xiàn)計(jì)算文件MD5和SHA1的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)計(jì)算文件MD5和SHA1的方法,結(jié)合具體實(shí)例形式分析了Python針對(duì)文件MD5及SHA1的計(jì)算方法,需要的朋友可以參考下2019-06-06
基于pandas將類(lèi)別屬性轉(zhuǎn)化為數(shù)值屬性的方法
今天小編就為大家分享一篇基于pandas將類(lèi)別屬性轉(zhuǎn)化為數(shù)值屬性的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
一個(gè)檢測(cè)OpenSSL心臟出血漏洞的Python腳本分享
這篇文章主要介紹了一個(gè)檢測(cè)OpenSSL心臟出血漏洞的Python腳本,心臟出血漏洞是互聯(lián)網(wǎng)上的地震,看到的同學(xué)趕緊升級(jí)OpenSSL,避免黑客入侵2014-04-04
python之關(guān)于數(shù)組和列表的區(qū)別及說(shuō)明
這篇文章主要介紹了python之關(guān)于數(shù)組和列表的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
Tensorflow 實(shí)現(xiàn)線(xiàn)性回歸模型的示例代碼
這篇文章主要介紹了Tensorflow 實(shí)現(xiàn)線(xiàn)性回歸模型,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
python實(shí)現(xiàn)機(jī)器人行走效果
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)機(jī)器人行走效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01

