Flask框架之信号机制

信号机制

类似于两方属于敌对关系时,某人在敌对方阵营进行交谈,一旦遇到特殊情况,某人便会发送信号,他的同伙接收(监听)到他发的信号后,同伙便会做出一系列的应对策略(杀进去|撤退)。

flask中的信号使用的是一个第三方插件,叫blinker。通过pip list看一下,如果没有安装,通过以下命令即可安装blinkerpip install blinker


自定义信号步骤

1. 创建信号:
定义信号需要使用到blinker这个包的Namespace类来创建一个命名空间。比如定义一个在访问了某个视图函数的时候的信号。

Namespace的作用:为了防止多人开发的时候,信号名字冲突的问题


from blinker import Namespace 

mysignal = Namespace() 
signal1 = mysignal.signal('信号名称')

2. 监听信号:
监听信号使用signal1对象的connect方法,在这个方法中需要传递一个函数,用来监听到这个信号后做该做的事情。


def func1(sender,uname): 
	print(sender) 
	print(uname) 
	
signal1.connect(func1)
	

3. 发送信号:
发送信号使用signal1对象的send方法,这个方法可以传递一些其他参数过去。


signal1.send(uname='wukong')



from flask import Flask 
from blinker import Namespace 

app = Flask(__name__) 

# Namespace:命名空间 
#1.定义信号 
sSpace = Namespace() 
fire_signal = sSpace.signal('发送信号火箭') 

#2.监听信号 
def fire_play(sender): 
	print(sender) 
	print("start play") 
fire_signal.connect(fire_play) 

#3.发送一个信号 
fire_signal.send() 

if __name__ == '__main__': 
	app.run(debug=True)

发布了354 篇原创文章 · 获赞 4 · 访问量 7820

猜你喜欢

转载自blog.csdn.net/weixin_44733660/article/details/103970675
今日推荐