一、信号
1、什么是信号(事件、绑定、触发)
https://flask.palletsprojects.com/en/stable/api/#core-signals-list
在 Flask 中,信号(Signals)是一种用于在应用程序的不同部分之间进行解耦和通信机制。信号允许不同的组件在不直接相互依赖的情况下进行交互和通知。
这在处理某些事件或操作时非常有用,例如请求完成、用户登录、实例创建等。
Flask 使用了一个名为 blinker
的库来实现信号。通过信号,让开发者可是在flask请求过程中定制一些用户行为
基本概念
- 信号:信号是一个事件,它可以在特定条件发生时被发送。其他部分可以选择“监听”这个信号。
- 连接:连接是指某个函数被绑定到信号上,以便在该信号被发送时执行。
- 发送信号:当某个事件发生时,您可以发送信号,通知所有的连接函数。
2、flask内置信号
1、种类
request_started = _signals.signal('request-started') # 请求到来前执行 request_finished = _signals.signal('request-finished') # 请求结束后执行 before_render_template = _signals.signal('before-render-template') # 模板渲染前执行 template_rendered = _signals.signal('template-rendered') # 模板渲染后执行 got_request_exception = _signals.signal('got-request-exception') # 请求执行出现异常时执行 request_tearing_down = _signals.signal('request-tearing-down') # 请求执行完毕后自动执行(无论成功与否) appcontext_tearing_down = _signals.signal('appcontext-tearing-down')# 应用上下文执行完毕后自动执行(无论成功与否) appcontext_pushed = _signals.signal('appcontext-pushed') # 应用上下文push时执行 appcontext_popped = _signals.signal('appcontext-popped') # 应用上下文pop时执行 message_flashed = _signals.signal('message-flashed') # 调用flask在其中添加数据时,自动触发
2、内置信号的使用
3、flask自定义信号
4、django中使用信号
二、信号量
1、
2、
标签:signals,flask,signal,request,信号量,信号,执行 From: https://www.cnblogs.com/dgp-zjz/p/18547995