【问题标题】:Pass input from django-ploly-dash app to other apps of the same django template将输入从 django-plotly-dash 应用程序传递到同一 django 模板的其他应用程序
【发布时间】:2020-06-09 05:47:23
【问题描述】:

我正在使用 django-plotly-dash 将一组 dash 应用程序(代表每个单独的图表)插入 django 模板。每个应用程序或图表都有自己的输入字段,用于选择数据并在给定的时间范围内绘制数据。

现在我想将日期选择/输入字段移动到一个单独的仪表板应用程序中,以便为模板中的所有应用程序选择数据,但我很难找到解决方案。

我查阅了https://django-plotly-dash.readthedocs.io 的文档以及https://djangoplotlydash.com/ 的示例。

非常感谢任何有关如何前进的提示!

【问题讨论】:

    标签: django plotly-dash hyphen


    【解决方案1】:

    如果选择是针对每个用户的,那么一种方法是将选择存储在该用户的会话中并在仪表板应用程序之间共享。这就是文档中worked example背后的原理。

    基本思想是使用extended_callbacks 注册回调 - 这将为您的回调提供额外的参数,包括当前用户的会话。然后,您可以使用以下代码行

    @dash_app.expanded_callback(
    dash.dependencies.Output("alert", 'children'),
    [dash.dependencies.Input('button', 'n_clicks'),]
    )
    def session_callback(n_clicks, session_state=None, **kwargs):
        if session_state is None:
            raise NotImplementedError("Cannot handle a missing session state")
        csf = session_state.get('demo_state', None)
        if not csf:
             csf = dict(clicks=0)
             session_state['demo_state'] = csf
        else:
            csf['clicks'] = n_clicks
        return "Button has been clicked %s times since the page was rendered" %n_clicks
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-29
      • 2013-10-16
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      • 2011-03-29
      • 2011-03-30
      • 2021-02-14
      相关资源
      最近更新 更多