Python Dash:从回调函数外部更新布局

Python Dash:从回调函数外部更新布局,python,user-interface,flask,request,plotly-dash,Python,User Interface,Flask,Request,Plotly Dash,我的目标是在本地网络中的笔记本电脑上运行Dash应用程序,并从驻留在同一网络中的微控制器触发HTTP请求。Dash应用程序应捕获这些请求,并应更新应用程序的布局。因此,我的目标最终是为Dash应用程序实现某种形式的远程控制 使用Flask-服务器并将其传递给Dash-对象时,捕获HTTP请求没有问题: 导入烧瓶 导入破折号 服务器=flask.flask(_名称__) app=dash.dash(名称,服务器=server) ... @路由('/start\u switch',methods=[

我的目标是在本地网络中的笔记本电脑上运行Dash应用程序,并从驻留在同一网络中的微控制器触发HTTP请求。Dash应用程序应捕获这些请求,并应更新应用程序的布局。因此,我的目标最终是为Dash应用程序实现某种形式的远程控制

使用
Flask
-服务器并将其传递给
Dash
-对象时,捕获HTTP请求没有问题:

导入烧瓶
导入破折号
服务器=flask.flask(_名称__)
app=dash.dash(名称,服务器=server)
...
@路由('/start\u switch',methods=['GET'])
def start_开关():
打印('server.route ran!')
#我在这里运行什么来更新布局元素?
返回响应(“”,200)
...
但是,由于主要的交互性来自仪表板回调,我不知道如何才能像在中一样更新布局:

@app.callback(输出('show-status','children'),
[输入('app2-status','children'))
def watch_kalibrierung(附件2_状态):
"""
app2状态一改变,功能即会回显
将其内容添加到div“show status”中
"""
返回app2\u状态
因为现在,我没有监听UI元素中的更改,而是监听HTTP请求

我已经尝试过编写回调函数并从
@server.route
-函数调用它,但没有成功

如何实现预期目标?

您可以使用该组件进行前端轮询更改,例如每秒轮询一次。那么

差不多

导入破折号
将仪表板核心组件作为dcc导入
将dash_html_组件导入为html
从dash.dependencies导入输入,输出
#将此组件插入布局中
#每1000毫秒,n_间隔就会增加,这
#可以绑定到回调
间隔=dcc.间隔(
id='interval-component',
间隔=1000,#以毫秒为单位
n_间隔=0
)
#将回调绑定到间隔
@app.callback(输出('some-Output-component','children'),
[输入('interval-component','n_interval'))
def更新_指标(n):
some_stuff=check_http_requests()#自定义函数
component=html.Div(一些东西)#为一些输出组件创建新的子级
返回组件
将数据从HTTP请求传递到检查HTTP请求()的一种简单方法是使用队列()将HTTP请求放入其中。现在,如何实现这一点取决于您的需要。如果您需要能够同时为多个用户提供服务,那么您必须制定一个逻辑,以便每个用户都有自己的队列,应该检查这些队列