Bokeh Python Flask 应用与交互式 Bokeh 图表
在本文中,我们将介绍如何使用 Bokeh Python 库和 Flask 框架创建一个交互式的 Bokeh 图表应用。Bokeh 是一个用于创建漂亮的交互式数据可视化的强大库,而 Flask 是一个轻量级的 Python Web 框架,可以方便地构建 Web 应用程序。
阅读更多:Bokeh 教程
1. 安装必要的库和工具
在开始之前,我们需要确保已经安装了以下工具和库:
- Python 3.x
- Flask
- Bokeh
可以使用以下命令安装 Flask 和 Bokeh:
pip install flask
pip install bokeh
2. 创建 Flask 应用
首先,创建一个文件夹用于存放我们的 Flask 应用。在文件夹中创建一个名为 app.py
的 Python 脚本,并在该脚本中导入需要的库:
from flask import Flask, render_template
from bokeh.embed import server_document
from bokeh.server.server import Server
# 创建 Flask 应用
app = Flask(__name__)
# 定义路由和视图函数
@app.route('/')
def index():
# 使用 Bokeh 服务器的文档 URL
bokeh_server_url = "http://localhost:5006/bokeh"
return render_template('index.html', bokeh_server_url=bokeh_server_url)
if __name__ == '__main__':
# 运行 Flask 应用
app.run(debug=True)
在上面的代码中,我们创建了一个 Flask 应用,并定义了一个路由 /
,将其与名为 index
的视图函数绑定。视图函数返回了一个从 Bokeh 服务器获取的文档 URL,并传递给名为 index.html
的模板。
3. 创建 Bokeh 服务器应用
接下来,创建一个名为 bokeh_app.py
的 Python 脚本,用于创建 Bokeh 服务器应用:
from bokeh.plotting import figure, curdoc
# 创建一个交互式的 Bokeh 图表
p = figure(x_range=(0, 10), y_range=(0, 10))
p.circle([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], size=20)
# 创建 Bokeh 服务器应用
def modify_doc(doc):
doc.add_root(p)
# 运行 Bokeh 服务器应用
server = Server({'/bokeh': modify_doc}, num_procs=1)
server.start()
server.io_loop.start()
在上述代码中,我们使用 Bokeh 创建了一个简单的交互式图表,并将其添加到 Bokeh 服务器应用中。该应用会在路径 /bokeh
上监听请求,并将图表返回给客户端。
4. 创建 HTML 模板
创建一个名为 index.html
的 HTML 模板,用于呈现 Flask 应用的主页:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Bokeh Flask App</title>
<link href="https://cdn.bokeh.org/bokeh/release/bokeh-2.2.3.min.css" rel="stylesheet" type="text/css">
<script src="https://cdn.bokeh.org/bokeh/release/bokeh-2.2.3.min.js"></script>
</head>
<body>
<h1>Bokeh Flask App</h1>
<div class="bokeh-plot">
<h2>Interactive Bokeh Plot</h2>
<div class="bk-root">
<script>
Bokeh.embed.embed_item("{{ bokeh_server_url }}");
</script>
</div>
</div>
</body>
</html>
在上述代码中,我们使用了 Bokeh 的 CSS 和 JS 引用,并在页面中插入了一个 Bokeh 图表的容器。
5. 运行应用
完成以上步骤后,我们可以通过以下命令启动 Flask 应用:
python app.py
随后,在浏览器中访问 http://localhost:5000
,即可看到我们创建的 Bokeh Flask 应用的交互式图表。
总结
本文介绍了如何使用 Bokeh Python 库和 Flask 框架创建一个交互式的 Bokeh 图表应用。我们先创建了一个 Flask 应用,并定义了一个路由和视图函数,将 Bokeh 服务器的文档 URL 传递给模板。然后,我们创建了一个简单的交互式图表,并将其添加到 Bokeh 服务器应用中。最后,创建了一个 HTML 模板,用于呈现应用的主页。通过运行 Flask 应用,我们可以在浏览器中访问并使用交互式的 Bokeh 图表。
希望本文能帮助你了解如何使用 Bokeh 和 Flask 创建一个强大的交互式数据可视化应用。通过添加更多的图表和功能,你可以扩展这个应用,并根据自己的需求定制特定的交互式数据可视化应用。