如何将烧瓶路由中的数据共享到Dash回调 [英] How to share data from a Flask route to a Dash callback

查看:22
本文介绍了如何将烧瓶路由中的数据共享到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回调中从会话中获取数据集吗?如何?

推荐答案

我脑海中出现的唯一方法是:

  1. 将所有数据写入一个文件,然后从回调访问该文件。
  2. 将所有数据保存到数据库中,然后从回调访问数据库。
  3. 也许您可以将数据作为url参数传递。在回调中,您可能可以访问烧瓶会话。这只是一个猜测。
另一种解决方案可能是在同一仪表板上插入数据...Upload Component

这篇关于如何将烧瓶路由中的数据共享到Dash回调的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆