Flask信号机制 #

一、信号概述 #

1.1 什么是信号 #

信号是Flask中用于解耦的事件系统,允许在特定事件发生时执行自定义代码。

1.2 内置信号 #

信号 触发时机
request_started 请求开始
request_finished 请求结束
got_request_exception 请求异常
before_render_template 模板渲染前
template_rendered 模板渲染后

二、使用信号 #

2.1 订阅信号 #

python
from flask import template_rendered

def log_template_render(sender, template, context, **extra):
    print(f'模板渲染: {template.name}')

template_rendered.connect(log_template_render, app)

2.2 自定义信号 #

python
from blinker import Namespace

my_signals = Namespace()
user_registered = my_signals.signal('user-registered')

def on_user_registered(sender, user, **extra):
    print(f'用户注册: {user.username}')

user_registered.connect(on_user_registered)

# 发送信号
user_registered.send(app, user=user)

三、下一步 #

接下来让我们学习 单元测试,了解Flask测试!

最后更新:2026-03-28