【问题标题】: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
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