我有一个现有的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'
从文档:
基本的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这两个应用程序。
DispatcherMiddleware
dash_app = Dash(__name__) flask_app = Flask(__name__) application = DispatcherMiddleware(flask_app, {'/dash': dash_app.server})