What do you mean by “proper integration”?
There’s only so much that you’ll be able to achieve as far as integration with the front-end side of the app. If you go with Flask, then it’s easy to piggyback the Dash app off the Flask app you create and mount the Dash app at a specific route prefix. But you can get a similar outcome with only a bit more effort by combining arbitrary WSGI apps (which is essentially all Python web frameworks) by using werkzeug’s
DispatcherMiddleware. (hopefully we’ll get documentation on these soon)
A lot of people look for integration with Dash at the template level (eg Jinja2), but that doesn’t really make sense, as Dash apps are React on the frontend, templates handled by Python are on the backend. Building out new Dash components (or forking existing React components) is a better place to look for tighter integration of the front-end side of the app.
So on the backend, Flask is a fine choice, but if other candidates are compelling for whatever reason, then it may be worth just going with them.