Hello,
I’m trying to insert a Dash application in a Flask environment. I’ve been using the App Factory pattern of Flask and I am initializing the app like this:
app = Flask(...)
...
with app.app_context():
...
from my_dash_app import init_dash_app
app = init_dash_app(app)
return app
Then in the init file of my dash application I’m doing:
from flask import g
...
def init_dash_app(server):
dash_app = dash.Dash(server=server, ...)
g.dash_app = dash_app
init_callbacks()
def init_callbacks():
import all_my_dash_callbacks
Finally, in all files where the Dash @app.callback decorator is used, I do:
from flask import g
app = g.dash_app
...
@app.callback(...)
def my_callback():
...
It works fine and doesn’t change the original Dash app too much, but It feels a bit hacky passing the dash_app reference around through the flask.g object.
Is there a better way to initialize Dash callbacks inside a Flask environment ?
Thanks!