Bokeh Python Flask 应用与交互式 Bokeh 图表

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 创建一个强大的交互式数据可视化应用。通过添加更多的图表和功能,你可以扩展这个应用,并根据自己的需求定制特定的交互式数据可视化应用。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Bokeh 问答