0.6 新版功能.
从 Flask 0.6 开始, Flask 集成了信号支持。这个支持由 blinker 库提供,
并且当它不可用时会优雅地退回。
什么是信号?信号通过发送发生在核心框架的其它地方或 Flask 扩展的动作
时的通知来帮助你解耦应用。简而言之,信号允许特定的发送端通知订阅者发
生了什么。
Flask 提供了几个信号,其它的扩展可能会提供更多。另外,请注意信号倾向于
通知订阅者,而不应该鼓励订阅者修改数据。你会注意到,信号似乎和一些内置的
装饰器做同样的事情(例如: request_started 与
before_request() 十分相似)。然而它们工作的方式是有
差异的。譬如核心的 before_request() 处理程序以特定的顺
序执行,并且可以在返回响应之前放弃请求。相比之下,所有的信号处理器执行的
顺序没有定义,并且不修改任何数据。
信号之于其它处理器最大的优势是你可以在一秒钟的不同的时段上安全地订阅。譬
如这些临时的订阅对单元测试很有用。比如说你想要知道哪个模板被作为请求的一
部分渲染:信号允许你完全地了解这些。
作者:andy,如若转载,请注明出处:https://www.web176.com/flask2/21718.html