python - 如何使用回调更新函数内的数据表?
问题描述
嗨,伙计们,我尝试更新从这样的 display() 函数初始化的应用程序内的数据表数据,但数据表没有更新,但是如果在没有 display() 的情况下初始化应用程序但直接将 div 写入内部,则数据表已更新,如果我在函数中声明 div,是否有办法使用回调更新数据表数据?
import dash
import dash_html_components as html
import dash_core_components as dcc
import dash_table as dt
from dash.dependencies import Input, Output
import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/solar.csv')
app = dash.Dash(__name__)
states = df.State.unique().tolist()
app.layout = display()
@app.callback(
Output('table-container', 'data'),
[Input('filter_dropdown', 'value') ] )
def display_table(state):
dff = df[df.State==state]
return dff.to_dict("records")
display()
if __name__ == '__main__':
app.run_server(debug=True, use_reloader=False)
def display() :
return html.Div(
children=[
dcc.Dropdown(
id='filter_dropdown',
options=[{'label':st, 'value':st} for st in states],
value = states[0]
),
dt.DataTable(id='table-container') ]
)```
解决方案
在布局上设置初始数据看起来可以实现您所需要的:
import dash
import dash_html_components as html
import dash_core_components as dcc
import dash_table as dt
from dash.dependencies import Input, Output
import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/solar.csv')
app = dash.Dash(__name__)
states = df.State.unique().tolist()
@app.callback(Output('table-container', 'data'),
[Input('filter_dropdown', 'value') ])
def display_table(state):
dff = df[df.State==state]
return dff.to_dict("records")
def display() :
return html.Div(
children=[
dcc.Dropdown(
id='filter_dropdown',
options=[{'label':st, 'value':st} for st in states],
value = states[0]
),
dt.DataTable(
id='table-container',
columns=[{"name": i, "id": i} for i in df.columns],
data=df.to_dict('records')
)]
)
app.layout = display()
if __name__ == '__main__':
app.run_server(debug=True, use_reloader=True)
推荐阅读
- c# - 如何仅在用户选择的选择中搜索
- visual-studio-code - 使用命令行在 VSCode 中使用 IBM 区块链平台扩展
- spring - Redisson 和 Spring Boot 连接到 AWS EC2 托管 Redis
- python - 在烧瓶工厂方法中使用参数与使用环境变量之间是否有任何权衡?
- android - 在上下文菜单Android中获取单击的按钮属性
- javascript - 只能回显我可用搜索标签的第一行
- c# - 在一个域类和同一个目标类的多个版本之间来回转换时可以使用哪种策略?
- python - 创建一个空的 DataFrame 作为默认参数
- c++ - 媒体基金会:WavSink 以比实时消耗速率更快的速度假脱机 - 假脱机可以被实时限制吗?
- ios - 原因:“杀死应用程序,因为它在收到 PushKit VoIP 推送回调后从未向系统发布来电。”