信号
今天我们来学习信号,信号是由blinker库提供的,现在我们来看看吧。
安装
pip install blinker
示例
示例代码如下:
# app.py
import os
from flask import Flask, render_template, session
from blinker import signal
app = Flask(__name__)
app.secret_key = os.urandom(24)
def connector(signal, **kw): # 订阅者函数
"""
:param signal: 发送过来的信息
:param **kw: 其它以字典形式呈现的数据
"""
data = "get a signal: " + signal + ", data:" + str(kw)
session["data"] = data
@app.route("/")
def index():
signal_1 = signal("index-1") # 信号发送者
signal_1.connect(connector) # 订阅者订阅此发送者
signal_1.send("signal from index-1", index="/") # 发送信号
return render_template("index.html", data = session["data"]) # 数据传给index
if __name__ == "__main__":
app.run(debug=True)
注释皆在代码中。
主要有订阅者和发送者两个概念,如果需要更详细的解析,可以自行google。