如何在带有输入和交互式图形的多页Dash应用程序中的哪里放置回调函数?

时间:2020-06-05 22:01:05

标签: python callback plotly-dash

你好美丽的社区,

我正在使用一个多页Dash应用程序,该应用程序将从用户那里获取输入并相应地更新dcc.Graph()。
我不知道将回调函数放在哪里。

  • 在一个文件(“ app_1.py”)中,我有第一个应用的布局。
  • 在第二个文件(“ app_2.py”)中,我具有第二个应用程序的布局。
  • 在第三个文件('home.py')中,我有了主页的布局。
  • 在第四个文件('index.py')中,我的代码将两个页面都链接到主页:
    app.layout = html.Div([
           dcc.Location(id='url', refresh=False),
                 html.Div(id='page-content')
            ])
    @app.callback(Output('page-content', 'children'),
          [Input('url', 'pathname')])
    def display_page(pathname):
         if pathname == '/':
                 return home.layout
            elif pathname == '/simulation1':
                 return app_1.layout
            elif pathname == '/simulation2':
                 return app_2.layout
            else:
                return '404'

制作单页应用程序时,通常将回调函数放置在布局之后,但是在这里,由于我的“ index.py”仅调用布局,因此不会检索放置在其后的回调。

我想知道是否有人知道我需要在哪里放置回调函数?

谢谢。

1 个答案:

答案 0 :(得分:0)

对于那些将来可能需要它的人,我找到了解决方案。 将回调函数放在“索引”文件的末尾。 之前:

if __name__ == '__main__':
    app.run_server(debug=True)