python - Dash 与 Flask App 集成的路由问题
问题描述
我最初构建了一个我试图在 Flask 环境中运行的仪表板应用程序。我需要用户身份验证,因此将 dash 集成到烧瓶登录组件的烧瓶应用程序中。
当我运行该应用程序时,登录工作正常,但是,我在为我的多页破折号应用程序配置路由时遇到了问题。
这是应用程序文件结构:
授权
- 登录
- 服务器
- 初始化文件
模板
- base.html
页面
- 主页.py
- page2.py index.py app.py
在index.py
中,应用程序布局是使用页面链接定义的。“主页”是应用程序加载时的默认页面。
import flask
from app import app
from auth.server import server
# App Layout
app.layout = html.Div([
dcc.Link(
'Home',
href='/home'
),
dcc.Link(
'Archive',
href='/archive'
),
dcc.Location(id='url'),
html.Div(id='page-content'),
])
# Render page content
@app.callback(Output("page-content", "children"),
[
Input('url', 'pathname')
]
)
def display_content(pathname):
if pathname == '/home':
return home.layout
elif pathname == '/archive':
return archive.layout()
的内容app.py
app = dash.Dash(__name__,
url_base_pathname='/home/',
#routes_pathname_prefix='/dashboard/',
)
的内容init.py
from .server import server
from index import app as dashApp
app = DispatcherMiddleware(server, {
'/dashboard': dashApp.server,
#add dash routes
})
if __name__ == '__main__':
run_simple('0.0.0.0', 5000, app)
的内容server.py
from flask import Flask
server = Flask(__name__,instance_relative_config=False)
如何为 dash 应用程序配置路由?当我404 Not Found
尝试访问 dash 应用程序时出现错误。用户/身份验证部分工作正常。
解决方案
推荐阅读
- sql-server - SQL Server 2014 中的 MASSIVE Identity 列值跳跃
- postgresql - 需要帮助合并重叠的时间间隔
- postman - 在 Postman 集合中,其中一项服务只需要调用一次
- apache-spark - Pyspark ModuleNotFoundError:没有名为“mmlspark”的模块
- logstash - Logback-classic 通过不同的依赖与 SLF4J 发生冲突
- c++ - 为什么 pow(x,1/p) 和 pow(x,1.0/p) 不相等,即使打印它们的值会给出相同的结果
- logging - 如何解决 log4j2 中 TimeBasedTriggerPolicy 的问题
- python - Pandas 根据需要匹配的其他列的值创建新的列 ID
- python - 如何解释 tensorboardX 中的梯度和参数直方图?
- python - 图形用户界面和脚本集成