Flask框架信號用法實例分析
本文實例講述了Flask框架信號用法。分享給大家供大家參考,具體如下:
項目功能復(fù)雜,代碼量越大,就越需要做業(yè)務(wù)解耦。否則在其之上做開發(fā)和維護(hù)是很痛苦的,尤其是對于團(tuán)隊的新人。Flask從0.6開始,通過Blinker提供了信號支持。信號就是在框架核心功能或者一些Flask擴(kuò)展發(fā)生工作時所發(fā)送的通知,用于幫助你解耦應(yīng)用。
Blinker的使用
安裝
pip install blinker
Blinker的信號與接收方式
from blinker import signal s = signal("test start") def each(round): print("each {}".format(round)) def round_two(round): print("round {}".format(round)) s.connect(each) s.connect(round_two,sender=2) # 表示值為2的時候才會接收信號 for index in range(1,4): s.send(index)
打印結(jié)果:
each 1
each 2
round 2
each 3
或者簡寫成:
from blinker import signal s = signal("test start") @s.connect def each(round) print("each {}".format(round))
Flask中內(nèi)置信號
- flask.template_rendered:模板渲染成功的時候發(fā)送,這個信號與模板實例
template
上下文的字典一起調(diào)用。 - flask.request_started:建立請求上下文后,在請求處理開始前發(fā)送,訂閱者可以用
request
之類的標(biāo)準(zhǔn)代理訪問請求。 - flask.request_finished:在響應(yīng)發(fā)送給客戶端之前發(fā)送,可以傳遞
reponse
。 - flask.got_request_exception:在請求處理中拋出異常時發(fā)送,異常本身會通過
execption
傳遞到訂閱函數(shù)。 - flask.request_tearing_down:在請求銷毀時發(fā)送,它總是被調(diào)用,即使發(fā)生異常。
- flask.appcontext_tearing_down:在應(yīng)用上下文銷毀時發(fā)送,它總是被調(diào)用,即使發(fā)生異常。
希望本文所述對大家基于flask框架的Python程序設(shè)計有所幫助。
相關(guān)文章
Django中如何防范CSRF跨站點請求偽造攻擊的實現(xiàn)
這篇文章主要介紹了Django中如何防范CSRF跨站點請求偽造攻擊的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04使用Python批量刪除MySQL數(shù)據(jù)庫的全部外鍵
這篇文章主要為大家詳細(xì)介紹了如何使用Python批量刪除MySQL數(shù)據(jù)庫的全部外鍵,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04python 統(tǒng)計文件中的字符串?dāng)?shù)目示例
今天小編就為大家分享一篇python 統(tǒng)計文件中的字符串?dāng)?shù)目示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12python機(jī)器學(xué)習(xí)deepchecks庫訓(xùn)練檢查模型特點探索
這篇文章主要介紹了python機(jī)器學(xué)習(xí)deepchecks庫的訓(xùn)練檢查模型特點實例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01