- 15
- 01月
本文介绍Flask的信号机制,讲述信号的用途,并给出创建信号、订阅信号、发送信 号的方法。
[TOC]
信号(signals)
Flask信号(signals, or event hooking)允许特定的发送端通知订阅者发生了什么( 既然知道发生了什么,那我们可以知道接下来该做什么了)。
Flask提供了一些信号(核心信号)且其它的扩展提供更多的信号。信号是用于通知 订阅者,而不应该鼓励订阅者修改数据。相关信号请查阅文档。
信号依赖于Blinker库。
钩子(hooks)
Flask钩子(通常出现在蓝图或应用程序现存的方法中,比如一些内置装饰器,例如
before_request
)不需要Blinker库并且允许你改变请求对象(request
)或者响应对
象(response
)。这些改变了应用程序(或者蓝图)的行为。比如before_request()
装饰器。
信号看起来和钩子做同样的事情。然而在工作方式上它们存在不同。譬如核心的
before_request()
处理程序以特定的顺序执行,并且可以在返回响应之前放弃请求
。相比之下 …