引言
最近一直在做Web端数据可视化方向的内容,且由于是生物信息相关的数据,故接触到了Plotly
下的Dash
模块,但是项目之前的大块内容都是用Flask
完成,因此如何把Dash
和Flask
结合起来就显得非常必要了。但是关于如何把这两者结合起来,官方文档提及甚少,且目前网上大部分的解决方案都是使用较低版本的werkzeug
搭配DispatcherMiddleware()
实现的,显然这都3202年过低版本的依赖包总会导致和其他的包不兼容,因此我将提供一个更加简单且通用的方案来达成Plotly
下的Dash
的结合,并实现Dash
的多页面路由。
解决方案
from flask import Flask
from dash import Dash
import dash_html_components as html
flask_server = Flask(__name__)
@flask_server.route('/',methods=['POST','GET'])
def index():
return 'Main Page'
@flask_server.route('/sub',methods=['POST','GET'])
def sub():
return 'Sub Page'
dash_app1 = Dash(server=flask_server, url_base_pathname='/dash1/')
dash_app1.layout = html.Div('Dash Page1')
dash_app2 = Dash(server=flask_server, url_base_pathname='/dash2/')
dash_app2.layout = html.Div('Dash Page2')
if __name__ == '__main__':
flask_server.run()
效果
127.0.0.1 #页面显示Main Page
127.0.0.1/sub #页面显示Sub Page
127.0.0.1/dash1 #页面显示Dash Page1
127.0.0.1/dash2 #页面显示Dash Page2
通过该方式实现了Flask
和Dash
的结合,且实现了Dash
的多页面路由。
后续
会出一些用Dash_bio
画生信图表的教程,可以持续关注本专栏