自定义信号
如果你想在自己的代码中创建和发送信号 (例如,如果你正在编写扩展名),请创建一个新的 Signal
实例,并在通知订阅者时调用 send
。使用 Namespace
创建信号。
from flask import current_app
from flask.signals import Namespace
namespace = Namespace()
message_sent = namespace.signal('mail_sent')
def message_response(recipient, body):
...
message_sent.send(
current_app._get_current_object(),
recipient=recipient,
body=body
)
@message_sent.connect
def log_message(app, recipient, body):
...
更喜欢使用 Flask 的信号支持而不是直接使用 Blinker。如果使用你的扩展程序的开发人员没有选择安装 Blinker,它会封装库以使信号保持可选。