📡 You're offline — showing cached content
New version available!
Quick Access
Tutorials Flask Web Framework Flask Signals

Flask Signals

5 min read
Use Blinker signals in Flask to hook into request lifecycle and define custom application events.

Flask Signals (Blinker)

pip install blinker

from flask import got_request_exception, request_started, request_finished
from blinker import signal

# Built-in Flask signals
request_started.connect(lambda app, **kw: print("Request started"))
got_request_exception.connect(lambda app, exception, **kw: log_error(exception))

# Custom signals
user_registered = signal("user-registered")
post_published  = signal("post-published")

def send_welcome(sender, user, **kwargs):
    send_email(user.email, "Welcome!")

user_registered.connect(send_welcome)

# Fire signal
@app.route("/register", methods=["POST"])
def register():
    user = create_user(request.json)
    user_registered.send(app, user=user)
    return jsonify(user.to_dict()), 201