如何将烧瓶路由中的数据共享到Dash回调
问题描述
我编写了一个烧瓶路由(假设为‘/POST_DATA’),以通过POST请求从远程传感器接收数据。
我想用Dash和一些下拉列表显示该数据,以响应地自定义图形,并在新数据到达烧瓶路线时自动更新。
import dash
import flask
app = dash.Dash(__name__)
app.layout = [
# ... some dash_core_components ...
dcc.Graph(id='mygraph'),
]
server = app.server
@server.route('/post_data', methods=['GET', 'POST'])
def post_data():
if request.method == 'POST':
data = eval(request.data.decode('utf8'))
@app.callback(
[Output('mygraph', 'figure')],
[Input('mydropdown1', 'value'), ...],
)
def update_mygraph(mydropdown1_value, ...):
# QUESTION: how to get data from post_data?
# some elaboration on data based on dropdown values
fig = px.scatter(data, x="x", y="y")
return fig
if __name__ == '__main__':
app.run_server()
我不明白的是:如何与Dash回调共享来自烧瓶路由的数据?
我是否应该将数据集存储在烧瓶会话中?然后可以在DASH回调中从会话中获取数据集吗?如何?
解决方案
我脑海中出现的唯一方法是:
- 将所有数据写入一个文件,然后从回调访问该文件。
- 将所有数据保存到数据库中,然后从回调访问数据库。
- 也许您可以将数据作为url参数传递。在回调中,您可能可以访问烧瓶会话。这只是一个猜测。
相关文章