python - 如何在选定的下拉值上应用 dcc 间隔
问题描述
我希望用户首先从下拉菜单中选择一个患者 ID,然后刷新所选的 ID,以便dcc.Interval
在文本输出中实时获取他当前的血压(通过数据库实时)。
但是,我只能获得患者的血压,但仍然需要通过 f5 刷新它以获得新的读数压力。如何修改我的第二个回调及其相关功能?
我尝试查找那些教程,但仍然不确定如何将它们混搭起来。谢谢。
我的app.layout:
app.layout = html.Div([
html.Div([dcc.Dropdown(id='dropdown',
options=[{'label': i, 'value': i} for i in x],
value='x',
clearable=False),
html.Div(id='table-container')]),
html.Div([html.Div(id='live-update-text'),
dcc.Interval(id='interval-component', interval=2000, n_intervals=0)])
])
相应的回调:
#First callback and its function [working as expected]
@app.callback(
dash.dependencies.Output('dropdown', 'options'),
[dash.dependencies.Input('dropdown', 'value')])
def get_update_db_dropdown(value):
#connect to database and then return the results.
#Second callback and its pseudo function; I want this to be self refresh/live updating via dcc interval process
@app.callback(
Output('live-update-text', 'children'),
[dash.dependencies.Input('dropdown', 'value')])
def set_display_livedata(value):
#connect to database and obtain blood pressure where id=value
return f'selected {id} has {bloodPressure}'
解决方案
要定期触发回调,您必须将Interval
组件添加为输入。因此,您的第二个回调应该是
@app.callback(
Output('live-update-text', 'children'),
[dash.dependencies.Input('dropdown', 'value'), dash.dependencies.Input('interval-component', 'n_intervals')])
def set_display_livedata(value, n_intervals):
#connect to database and obtain blood pressure where id=value
return f'selected {id} has {bloodPressure}'
推荐阅读
- c# - 如何在 MVC 项目的视图中显示对象列表
- ruby-on-rails - 如何在 Rails (4.2) 中强制提交嵌套事务
- security - Vaadin 8 和过时的 HighCharts 库的安全问题
- flutter - 如何在 const 构造函数中为 dart 初始化最终变量
- android - 使用 Navigational 组件时,如何在后台堆栈中维护 Fragments 的状态?
- django - Django 登录 - “无法在没有主键的情况下强制更新 save()”
- javascript - 如何在 webRTC 对等连接中使用 addTrack 发送额外数据?
- java - 迭代 Java Map 但在跳过第一个元素之后
- python - 将“conda activate env_name”的输出保存到批处理文件中的变量
- php - 这些文件位于 sleay32.dll 和 libeay32.dll 的什么位置?