每次用户在浏览器中打开破折号应用程序时,我想创建唯一的会话ID。
我一直在这里关注本教程:
这是我的代码:
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似乎有所不同,但是如果我使用的是同一台计算机,它将保持不变。
每次用户打开仪表板应用程序的网址时,是否都可以生成唯一的会话?
答案 0 :(得分:0)
显然这是问题所在:dash_app.layout = serve_layout()
您必须在没有括号的情况下使用它:
dash_app.layout = serve_layout
实际上,您分配的不是函数,而是函数在第一次加载页面时调用一次的结果。