python - 如何在不使用 iframe 的情况下结合 Dash 和 Flask 登录?

标签 python flask plotly-dash flask-login

我有一个 Flask 应用程序,该应用程序的某些页面受 Flask-Login 保护,我需要将破折号图添加到我的应用程序中,该图应该位于需要身份验证的页面上。我应该补充一点,除了 Flask Login 之外,我还使用 Flask session 创建了用户访问级别。

我找到了如何使用 iframe block 将 Dash 与 protected 页面结合起来,但我想尝试将破折号图制作为具有用户身份验证的单独页面(不是 iframe)。如果忘记身份验证,我可以在 Flask 应用程序中将破折号图添加为单独的页面。

通常我会执行以下操作来检查登录:

@app.route("/somempage", methods=["GET", "POST"])
@flask_login.login_required
def return_somepage():
    active_username = session['user_id']
    try:
        HOST, USER, PASSWORD, AUTH_PLUGIN = 
        InitSetup.read_mysql_init_config_file(WORKDIR +
        os.path.join(os.getcwd(), "mosreg_webscrap_website.config.txt"))
        conn, curs = MySQLOP.create_mysql_connection(HOST, USER, PASSWORD, 
        AUTH_PLUGIN)
        active_user = MySQLOP.retrieve_userinfo_from_db(curs, 
        active_username)
#now we check value of db colum and decide if user can see the page:
if active_user[0][4]:
    #show page
else:
    # return user have no rights to see the page template

最佳答案

我使用以下命令成功在我的仪表板应用中添加了 @login_required:

在 Flask 应用程序的 __init__.py 中

app = Flask(__name__, instance_relative_config=False)

# other stuff ...

@app.route("/dash", methods=['POST','GET'])
@login_required
def dash():
    return appdash.index()

在 dashapp.py
appdash = dash.Dash(__name__, external_stylesheets=external_stylesheets, server=app)

请注意,我没有在 Dash 应用程序声明中定义路线(即 routes_pathname_prefix='/dash'),因此 Dash 应用程序只能通过我的 Flask 应用程序的路线查看,即我输入了@login_required

@login_required 在我的例子中是来自 Flask tutorial 的那个

关于python - 如何在不使用 iframe 的情况下结合 Dash 和 Flask 登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57873247/

相关文章:

flask - 有没有办法在不影响标签宽度的情况下控制 wtf.form_field 输入字段的宽度?

python - 如何从破折号下拉菜单中选择并运行模型并更新混淆矩阵图?

python - 仪表板绘图值错误: Invalid value

python - Pandas DataFrame到Excel无法在Docker中工作

python - np.reshape() 如果没有足够的元素,则填充

python - 使用curl发送请求时Flask可以处理 session 吗?

python - 按索引将列表中的值映射到列表

python - 动态添加 URL 规则到 Flask 应用

python - 如何配置 Sphinx auto flask 来记录 flask-restful API?

python - mypy:如何定义通用子类