我的问题是,数据总共位于四个数据帧中,并且我的应用程序中的三个页面中的每一页都使用其中多个数据帧来可视化内容。我试图避免每次调用其中一个页面时都重新加载数据帧。这可能吗?如何?
目前,我尝试首先使用 index.py 中的函数加载 df,然后加载其他页面:
df_fz, df_md, df_auf, df_mat = get_dfs()
from apps import app1, app2, app3
[...]
@app.callback(Output('page-content', 'children'),
[Input('url', 'pathname')])
def display_page(pathname):
if pathname == '/app1':
return app1.layout
elif pathname == '/app2':
return app2.layout
else:
return app3.layout
app1 到 app3 中的每一个都使用数据帧,就好像它们是在脚本顶部加载的一样,但此代码按原样抛出错误,因为 df 未定义。app3 的一个最小示例:
layout = html.Div([
html.H3('App 3'),
dcc.Dropdown(
id='app-3-dropdown',
options=[
{'label': 'App 3 - {}'.format(i), 'value': i} for i in [df_fz.Value]
]
),
html.Div(id='app-3-display-value'),
])
@app.callback(
Output('app-3-display-value', 'children'),
[Input('app-3-dropdown', 'value')])
def display_value(value):
return 'You have selected "{}" but in App 3'.format(value)
宝慕林4294392
富国沪深
慕工程0101907
相关分类