【问题标题】:unique session id for different dash sessions不同破折号会话的唯一会话 ID
【发布时间】:2019-10-29 15:11:59
【问题描述】:

我想为每次用户在浏览器中打开仪表板应用程序时创建唯一的会话 ID。

我一直在关注这里的教程:

https://dash.plot.ly/sharing-data-between-callbacks

这是我的代码:

import dash
import dash_html_components as html
import dash_core_components as dcc
import flask
import datetime 
import uuid

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = flask.Flask(__name__)
dash_app = dash.Dash(__name__,server=app,url_base_pathname="/",external_stylesheets=external_stylesheets)

def serve_layout():
    session_id = str(uuid.uuid4())
    return html.Div([
    html.Div(session_id, id='session-id', style={'display': 'none'}),
    html.Div(dcc.Input(id="input_session_id",type="text",value=session_id))
    ])
dash_app.layout = serve_layout()

if __name__ == '__main__':
    app.run(host='0.0.0.0', debug=True, port=80)

如果我使用不同的计算机,会话 id 似乎不同,但如果我使用同一台计算机,它会保持不变。

有没有办法在用户每次打开 dash 应用的 url 时生成一个唯一的会话?

【问题讨论】:

    标签: flask plotly-dash


    【解决方案1】:

    显然问题出在这一行:dash_app.layout = serve_layout() 您必须不带括号使用它:

    dash_app.layout = serve_layout
    

    实际上,您分配的不是函数,而是在第一个页面加载时调用一次的函数的结果。

    【讨论】:

      猜你喜欢
      • 2010-10-23
      • 2010-09-13
      • 2015-01-12
      • 1970-01-01
      • 2011-01-15
      • 1970-01-01
      • 2012-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多