自定義訊號

如果你想在自己的程式碼中建立和傳送訊號 (例如,如果你正在編寫副檔名),請建立一個新的 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,它會封裝庫以使訊號保持可選。