flask - 不同破折号 session 的唯一 session ID

标签 flask plotly-dash

我想为每次用户在浏览器中打开仪表板应用程序时创建唯一的 session 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)

如果我使用不同的计算机, session ID 似乎会有所不同,但如果我使用同一台计算机,它将保持不变。

有没有办法在用户每次打开 dash 应用程序的 URL 时生成唯一的 session ?

最佳答案

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

dash_app.layout = serve_layout

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

关于flask - 不同破折号 session 的唯一 session ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58610254/

相关文章:

python - 为什么 flask url_for 太慢

python - 如何防止 werkzeug 记录日志

python - plotly .ly : Different height for subplots with shared X-Axes

python - 如何在单个浏览器页面上向 Dash 应用程序添加多个图形?

python - Plotly:如何使用 Pandas 数据框作为源按行填充表

python - 使用请求发布上传的文件

python - Flask 应用程序带有 "submodules"

python-3.x - 如何备份 Sqlalchemy 数据库?

python - 将所有内容放在应用程序中心会弄乱 `DatePickerSingle` 和 `RadioItems`

python - 无法在python中导入破折号