Dash 应用程序自动更新 dcc.Interval 不工作
Dash app auto update with dcc.Interval not working
我正在尝试使用 Dcc.Interval 和回调让我的仪表板自动更新。我不知道我在这里做错了什么。 html.P 组件“children”没有更新,而且似乎没有启动间隔:
app.layout = html.Div([
# Previous day column
dbc.Col([html.H1(PREV_DAY,
style={'textAlign': 'center', 'height': '5%', 'margin-top': '30px', 'margin-bottom': '25px',
'font-family': 'Consolas', 'font-size': 'xxx-large'}),
dbc.Card(
[
dbc.CardBody(
[
html.H4(id='card_title_1', children=['Sales'], className='card-title'),
html.P(id='card_text_1', children=['Sample text.']),
dcc.Interval(
id='interval-component',
interval=10 * 1000, # in milliseconds
n_intervals=0
)
], style={'textAlign': 'center', 'font-family': 'Consolas'}
)
], style={'margin-top': '15px', 'margin-bottom': '15px', 'height': '30%'}
),
我试图在每个时间间隔更新 html.P(id='card_text_1') 元素。这是我的回调:
### SECTION - Callbacks ###
@app.callback(
Output('card_text_1', 'children'),
Input('interval-component', 'n_intervals'))
def update_metrics(n):
salesYest = 'test'
return [{}.format(salesYest)]
如果您查看 运行 应用程序所在的控制台,您将看到此错误:
AttributeError: 'dict' object has no attribute 'format'
问题出在你回调的这一部分
return [{}.format(salesYest)]
正如错误所说,字典没有属性 format
。
现在我不太确定你在回调中到底想做什么,但 Interval
组件本身工作正常。您可以通过将回调更改为如下内容来测试它:
@app.callback(
Output("card_text_1", "children"), Input("interval-component", "n_intervals")
)
def update_metrics(n):
return n
另请记住,您已将 interval
设置为 10000
毫秒。所以一定要检查 10
秒是否真的过去了,以防它似乎仍然没有做任何事情,或者在调试时降低 interval
。
此外,除了格式问题之外,您目前每次都返回相同的值,因此您不会注意到任何一种方式。
我正在尝试使用 Dcc.Interval 和回调让我的仪表板自动更新。我不知道我在这里做错了什么。 html.P 组件“children”没有更新,而且似乎没有启动间隔:
app.layout = html.Div([
# Previous day column
dbc.Col([html.H1(PREV_DAY,
style={'textAlign': 'center', 'height': '5%', 'margin-top': '30px', 'margin-bottom': '25px',
'font-family': 'Consolas', 'font-size': 'xxx-large'}),
dbc.Card(
[
dbc.CardBody(
[
html.H4(id='card_title_1', children=['Sales'], className='card-title'),
html.P(id='card_text_1', children=['Sample text.']),
dcc.Interval(
id='interval-component',
interval=10 * 1000, # in milliseconds
n_intervals=0
)
], style={'textAlign': 'center', 'font-family': 'Consolas'}
)
], style={'margin-top': '15px', 'margin-bottom': '15px', 'height': '30%'}
),
我试图在每个时间间隔更新 html.P(id='card_text_1') 元素。这是我的回调:
### SECTION - Callbacks ###
@app.callback(
Output('card_text_1', 'children'),
Input('interval-component', 'n_intervals'))
def update_metrics(n):
salesYest = 'test'
return [{}.format(salesYest)]
如果您查看 运行 应用程序所在的控制台,您将看到此错误:
AttributeError: 'dict' object has no attribute 'format'
问题出在你回调的这一部分
return [{}.format(salesYest)]
正如错误所说,字典没有属性 format
。
现在我不太确定你在回调中到底想做什么,但 Interval
组件本身工作正常。您可以通过将回调更改为如下内容来测试它:
@app.callback(
Output("card_text_1", "children"), Input("interval-component", "n_intervals")
)
def update_metrics(n):
return n
另请记住,您已将 interval
设置为 10000
毫秒。所以一定要检查 10
秒是否真的过去了,以防它似乎仍然没有做任何事情,或者在调试时降低 interval
。
此外,除了格式问题之外,您目前每次都返回相同的值,因此您不会注意到任何一种方式。