一尘不染

在Flask应用程序中运行Dash应用程序

flask

我有一个现有的Flask应用程序,并且想找到通往另一个应用程序的路线。更具体地说,第二个应用程序是Plotly Dash应用程序。如何在现有的Flask应用程序中运行Dash应用程序?

@app.route('/plotly_dashboard') 
def render_dashboard():
    # go to dash app

我还尝试将路由添加到Dash实例,因为它是Flask应用程序,但出现错误:

AttributeError: 'Dash' object has no attribute 'route'

阅读 1431

收藏
2020-04-05

共1个答案

一尘不染

从文档:

基本的Flask应用程序可从访问app.server。

import dash
app = dash.Dash(__name__)
server = app.server

你还可以将自己的Flask应用实例传递到Dash中:

import flask
server = flask.Flask(__name__)
app = dash.Dash(__name__, server=server)

现在有了Flask实例,你可以添加所需的任何路由和其他功能。

@server.route('/hello')
def hello():
    return 'Hello, World!'

对于一个更笼统的问题,“我如何才能彼此相邻地服务两个Flask实例”,假设你最终没有像上面的Dash答案那样使用一个实例,则可以使用DispatcherMiddleware这两个应用程序。

dash_app = Dash(__name__)
flask_app = Flask(__name__)

application = DispatcherMiddleware(flask_app, {'/dash': dash_app.server})
2020-04-05