Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将多个Dash应用程序集成到Flask中_Python_Flask_Plotly Dash - Fatal编程技术网

Python 将多个Dash应用程序集成到Flask中

Python 将多个Dash应用程序集成到Flask中,python,flask,plotly-dash,Python,Flask,Plotly Dash,我正在尝试将多个Dash应用程序集成到一个Flask应用程序中,但无法做到这一点 我能够使用以下结构将一个Dash应用程序集成到Flask中: 仪表板1.py def create_dashboard(server): dash_app = dash.Dash(server=server, routes_pathname_prefix='/dash1/', external_stylesh

我正在尝试将多个Dash应用程序集成到一个Flask应用程序中,但无法做到这一点

我能够使用以下结构将一个Dash应用程序集成到Flask中:

仪表板1.py

def create_dashboard(server):
    dash_app = dash.Dash(server=server,
                         routes_pathname_prefix='/dash1/',
                         external_stylesheets=[dbc.themes.BOOTSTRAP], 
                
                         )

     ....
     return dash_app.server
init.py

from flask import Flask
from flask_assets import Environment


def create_app():
    """Construct core Flask application with embedded Dash app."""
    f_app = Flask(__name__, instance_relative_config=False)
    f_app.config.from_object('config.Config')
    assets = Environment()
    assets.init_app(f_app)

    with f_app.app_context():
        # Import parts of our core Flask app
        from . import routes
        from .assets import compile_static_assets

        # Import Dash application
        from .plotlydash.dashboard import create_dashboard
        app = create_dashboard(f_app)        
    
        # Compile static assets
        compile_static_assets(assets)

        return app
from flask import Flask
from flask_assets import Environment


def create_app():
    """Construct core Flask application with embedded Dash app."""
    f_app = Flask(__name__, instance_relative_config=False)
    f_app.config.from_object('config.Config')
    assets = Environment()
    assets.init_app(f_app)

    with f_app.app_context():
        # Import parts of our core Flask app
        from . import routes
        from .assets import compile_static_assets

        # Import Dash application
        from .plotlydash.dashboard1 import create_dashboard
        from .plotlydash.dashboard2 import create_dashboard2
        app = create_dashboard(f_app)     
        app2 = create_dashboard2(f_app)      
    
        # Compile static assets
        compile_static_assets(assets)

        return app, app2
routes.py

from flask import render_template, redirect
from flask import current_app as app
 @app.route('/dash1')
 def dash1(): 
    return render_template('dash1.html', app_data=app_data)
from flask import render_template, redirect
from flask import current_app as app
@app.route('/dash1')
def dash1(): 
    return render_template('dash1.html', app_data=app_data)
@app.route('/dash2')
def dash2(): 
    return render_template('dash2.html', app_data=app_data)
app.py

from application import create_app
app= create_app()        
if __name__ == "__main__":
    app.run(host='0.0.0.0', debug=True)
from application import create_app
app, app2= create_app()        
if __name__ == "__main__":
    app.run(host='0.0.0.0', debug=True)
    app2.run(host='0.0.0.0', debug=True)
第一款Dash应用程序一切正常。我想在应用程序中创建另一个菜单/选项卡,并集成第二个dash应用程序。我怎么能这样做?我尝试了以下方法,但没有成功。只有第一个应用程序的链接起作用

仪表板2.py

def create_dashboard2(server):
    dash_app = dash.Dash(server=server,
                         routes_pathname_prefix='/dash2/',
                         external_stylesheets=[dbc.themes.BOOTSTRAP], 
                
                         )

     ....
     return dash_app.server
init.py

from flask import Flask
from flask_assets import Environment


def create_app():
    """Construct core Flask application with embedded Dash app."""
    f_app = Flask(__name__, instance_relative_config=False)
    f_app.config.from_object('config.Config')
    assets = Environment()
    assets.init_app(f_app)

    with f_app.app_context():
        # Import parts of our core Flask app
        from . import routes
        from .assets import compile_static_assets

        # Import Dash application
        from .plotlydash.dashboard import create_dashboard
        app = create_dashboard(f_app)        
    
        # Compile static assets
        compile_static_assets(assets)

        return app
from flask import Flask
from flask_assets import Environment


def create_app():
    """Construct core Flask application with embedded Dash app."""
    f_app = Flask(__name__, instance_relative_config=False)
    f_app.config.from_object('config.Config')
    assets = Environment()
    assets.init_app(f_app)

    with f_app.app_context():
        # Import parts of our core Flask app
        from . import routes
        from .assets import compile_static_assets

        # Import Dash application
        from .plotlydash.dashboard1 import create_dashboard
        from .plotlydash.dashboard2 import create_dashboard2
        app = create_dashboard(f_app)     
        app2 = create_dashboard2(f_app)      
    
        # Compile static assets
        compile_static_assets(assets)

        return app, app2
routes.py

from flask import render_template, redirect
from flask import current_app as app
 @app.route('/dash1')
 def dash1(): 
    return render_template('dash1.html', app_data=app_data)
from flask import render_template, redirect
from flask import current_app as app
@app.route('/dash1')
def dash1(): 
    return render_template('dash1.html', app_data=app_data)
@app.route('/dash2')
def dash2(): 
    return render_template('dash2.html', app_data=app_data)
app.py

from application import create_app
app= create_app()        
if __name__ == "__main__":
    app.run(host='0.0.0.0', debug=True)
from application import create_app
app, app2= create_app()        
if __name__ == "__main__":
    app.run(host='0.0.0.0', debug=True)
    app2.run(host='0.0.0.0', debug=True)

你能帮我指出我可能做错了什么吗?

我发现我错在路径@app.route(“/dash2/”)上加了一个“/”。删除“/”为我解决了问题。希望这篇文章可以帮助其他人,看看如何将Dash整合到烧瓶中,你有回购协议吗?官方教程没有显示如何以这种方式运行它,每个应用程序都要单独运行调用。您是如何初始化回调的?我发现我错误地在路径@app.route(“/dash2/”)上加了一个“/”号。删除“/”为我解决了问题。希望这篇文章可以帮助其他人,看看如何将Dash整合到烧瓶中,你有回购协议吗?官方教程没有显示如何通过为每个应用程序分别运行调用来以这种方式运行。您是如何初始化回调的?