按flask app.route动态分配dash.layout功能

2024-04-25 08:44:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在flask应用程序实例中动态更改dash_app.layout的函数分配

烧瓶应用程序通过工厂方法构建,最重要的是由以下部分组成:

  1. app = Add_Dash(app)-->;在这里,Dash应用程序通过pre-fix/Dash应用程序初始化
  2. app.register_blueprint(routes.main\u bp)-->;添加路线的位置

在Add_Dash类中,为Dash_app.layout分配了一个函数,该函数返回/指示在运行时呈现html/DOM图(分配在初始化/服务器启动时完成)

dash_app.layout = chStatistics

dash应用程序正在执行此函数(chStatistics),并在每次用户调用dash应用程序时重新呈现DOM

在“index.html”(由flask模板呈现)中,我构建了一个导航,用于控制呈现虚线图的JS调用($.renderer = new DashRenderer();)。这将执行分配给dash_app.layout的函数。 到目前为止,这一切都很好

现在,我想在routes.py模块中重新分配dash_app.layout = newFunction。最后的设置将如下所示:

  1. 用户单击导航按钮
  2. 异步JS XHR请求被发送到flask服务器,并在routes.py模块中获取
  3. 在routes.py模块中dash_app.layout = newFunction被分配(从dash_app.layout = chStatistics更改)
  4. 在JS XHR调用的回调中,执行$.renderer = new DashRenderer();,呈现dash应用*
  5. Dash应用程序现在使用新函数检索图形

我在想,我可以创建一个路由器功能,最初在dash应用程序启动时分配,然后根据router.py模块设置的会话变量执行chFunction或newFunction。但是,我不确定这是否是最理想的方式

*)为了完整性,我应该提到这是简化的。实际上,还有其他正在进行的DOM操作(例如,del of#react入口点),以便dash再次渲染


Tags: 模块函数pyaddapp应用程序flaskjs