今天就跟大家聊聊有關(guān)如何在flask框架中使用勾子函數(shù),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)建站主營(yíng)尼開遠(yuǎn)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,App定制開發(fā),尼開遠(yuǎn)h5成都微信小程序搭建,尼開遠(yuǎn)網(wǎng)站營(yíng)銷推廣歡迎尼開遠(yuǎn)等地區(qū)企業(yè)咨詢請(qǐng)求鉤子是通過(guò)裝飾器的形式實(shí)現(xiàn),F(xiàn)lask支持如下四種請(qǐng)求鉤子:
before_first_request
在處理第一個(gè)請(qǐng)求前執(zhí)行
before_request
在每次請(qǐng)求前執(zhí)行
如果在某修飾的函數(shù)中返回了一個(gè)響應(yīng),視圖函數(shù)將不再被調(diào)用
after_request
如果沒(méi)有拋出錯(cuò)誤,在每次請(qǐng)求后執(zhí)行
接受一個(gè)參數(shù):視圖函數(shù)作出的響應(yīng)
在此函數(shù)中可以對(duì)響應(yīng)值在返回之前做最后一步修改處理
需要將參數(shù)中的響應(yīng)在此參數(shù)中進(jìn)行返回
teardown_request
在每次請(qǐng)求后執(zhí)行
接受一個(gè)參數(shù):錯(cuò)誤信息,如果有相關(guān)錯(cuò)誤拋出
代碼測(cè)試
from flask import Flask from flask import abort app = Flask(__name__) # 在第一次請(qǐng)求之前調(diào)用,可以在此方法內(nèi)部做一些初始化操作 @app.before_first_request def before_first_request(): print("before_first_request") # 在每一次請(qǐng)求之前調(diào)用,這時(shí)候已經(jīng)有請(qǐng)求了,可能在這個(gè)方法里面做請(qǐng)求的校驗(yàn) # 如果請(qǐng)求的校驗(yàn)不成功,可以直接在此方法中進(jìn)行響應(yīng),直接return之后那么就不會(huì)執(zhí)行視圖函數(shù) @app.before_request def before_request(): print("before_request") # if 請(qǐng)求不符合條件: # return "laowang" # 在執(zhí)行完視圖函數(shù)之后會(huì)調(diào)用,并且會(huì)把視圖函數(shù)所生成的響應(yīng)傳入,可以在此方法中對(duì)響應(yīng)做最后一步統(tǒng)一的處理 @app.after_request def after_request(response): print("after_request") response.headers["Content-Type"] = "application/json" return response # 請(qǐng)每一次請(qǐng)求之后都會(huì)調(diào)用,會(huì)接受一個(gè)參數(shù),參數(shù)是服務(wù)器出現(xiàn)的錯(cuò)誤信息 @app.teardown_request def teardown_request(e): print("teardown_request") @app.route('/') def index(): return 'index' if __name__ == '__main__': app.run(debug=True)
在第1次請(qǐng)求時(shí)的打?。?br/>before_first_request
before_request
after_request
teardown_request在第2次請(qǐng)求時(shí)的打?。?br/>before_request
after_request
teardown_request
看完上述內(nèi)容,你們對(duì)如何在flask框架中使用勾子函數(shù)有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,感謝大家的支持。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。