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