10.flask 信号
pip install blinker自定义信号
自定义信号分三步,
第一是定义一个信号
第二是监听一个信号
第三是发送一个信号
定义信号:定义信号需要使用到blinker这个包的Namespace类来创建一个命名空间。比如定义一个在访问了某个视图函数的时候的信号。示例代码如下:
from blinker import Namespace
# Namespace的作用:为了防止多人开发的时候,信号名字冲突的问题
mysignal = Namespace()
visit_signal = mysignal.signal('visit-signal')监听信号:监听信号使用singel对象的connect方法,在这个方法中需要传递一个函数,用来接收以后监听到这个信号该做的事情。示例代码如下:
def visit_func(sender,username):
print(sender,username)发送信号:发送信号使用singal对象的send方法,这个方法可以传递一些其他参数过去。示例代码如下:
mysignal.send(username='angle')signal_demo.py
signals.py
Flask内置的信号讲解
template_rendered:模板渲染完毕后的信号
request_started:模板开始渲染
request_finished:模板完成渲染
request_tearing_down:request对象被销毁的信号
got_request_exception:视图函数发生异常的信号,一般可以监听这个信号,来记录网站异常信号
appcontext_tearing_down:app上下文被销毁的信号
appcontext_pushed:app上下文被推入到栈上的信号
appcontext_poped:app上下文被退出栈中的信号
message_flashed:调用了Flask的‘flashed’方法的信号
最后更新于
这有帮助吗?
