【发布时间】:2021-09-10 15:01:59
【问题描述】:
我编写了一个 Flask 路由(比如说“/post_data”)以通过 POST 请求从远程传感器接收数据。
我想用Dash 显示该数据,并带有一些下拉菜单以响应地自定义图形,并在新数据到达 Flask 路由时自动更新。
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 回调共享来自 Flask 路由的数据?
我应该将数据集存储在 Flask 会话中吗?那么是否可以在破折号回调中从会话中获取数据集?怎么样?
【问题讨论】:
-
“重复”问题不是重复的:我不想在 Flask 路由之间共享数据,而是在 Flask 路由和 Dash 回调之间共享数据,它们不一样(至少不明显和如果是这样,应提供链接到“重复”问题的解释性答案)。
-
关于这个问题的一些有用信息可以在这里找到community.plotly.com/t/update-plot-in-dash-from-rest-api/10612
标签: python flask session request plotly-dash