本文實例講述了Flask框架信號用法。分享給大家供大家參考,具體如下:
項目功能復雜,代碼量越大,就越需要做業務解耦。否則在其之上做開發和維護是很痛苦的,尤其是對于團隊的新人。Flask從0.6開始,通過Blinker提供了信號支持。信號就是在框架核心功能或者一些Flask擴展發生工作時所發送的通知,用于幫助你解耦應用。
Blinker的使用
安裝
pip install blinker
Blinker的信號與接收方式
from blinker import signals = 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)
打印結果:
each 1
each 2
round 2
each 3
或者簡寫成:
from blinker import signals = signal("test start")@s.connectdef each(round) print("each {}".format(round))
Flask中內置信號
flask.template_rendered:模板渲染成功的時候發送,這個信號與模板實例template
上下文的字典一起調用。 flask.request_started:建立請求上下文后,在請求處理開始前發送,訂閱者可以用request
之類的標準代理訪問請求。 flask.request_finished:在響應發送給客戶端之前發送,可以傳遞reponse
。 flask.got_request_exception:在請求處理中拋出異常時發送,異常本身會通過execption
傳遞到訂閱函數。 flask.request_tearing_down:在請求銷毀時發送,它總是被調用,即使發生異常。 flask.appcontext_tearing_down:在應用上下文銷毀時發送,它總是被調用,即使發生異常。希望本文所述對大家基于flask框架的Python程序設計有所幫助。
新聞熱點
疑難解答