2️⃣ Flask 零基础入门:完美融合 Echarts!5 分钟打造数据可视化大屏【效率翻倍】

🎨 背景

🌟 为什么选择Echarts?

  1. 强大的可视化能力 - 支持 30+ 种图表类型,满足各种数据展示需求
  2. 流畅的交互体验 - 内置缩放、拖拽、数据筛选等交互功能
  3. 跨平台兼容 - 完美适配 PC 和移动端,响应式设计
  4. 活跃的社区支持 - 丰富的示例和文档资源

Echarts 中文网 https://echarts.apache.org/examples/zh/

📌 本文是 Flask 系列教程的第二期,将带您实现数据可视化功能整合!

🛠️ 环境准备

1.优化项目结构

新建文件夹,来存放 Echarts 文件和网页文件。目录结构如下

FlaskDemo/
├── static/
│   └── js/
│       └── echarts.min.js  # Echarts核心库
├── templates/
│   └── index.html         # 可视化页面模板
└── main.py                # Flask主程序

2.快速获取 Echarts

进入 static -> js 文件夹,再通过 cmd 打开终端,输入下列代码下载 Echarts 图表库的压缩版 JavaScript 文件。

curl -o echarts.min.js https://cdn.jsdelivr.net/npm/echarts@5.4.3/dist/echarts.min.js

💡 专业提示:使用 CDN 引入可以减小项目体积!

在这里插入图片描述

在这里插入图片描述

📝 整合代码

1.Flask 后端数据处理

添加路由,设置模拟数据,并将数据传给 index.html 里面的 Echarts 模型。

from flask import Flask,render_template

app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, World!"

@app.route('/index')
def index():
    # 模拟数据 - 实际项目中可以从数据库获取
    chart_data = {
        "title": "网站访问来源统计",
        "subtitle": "模拟数据",
        "legend": ['搜索引擎', '直接访问', '邮件营销', '联盟广告', '视频广告'],
        "series": [
            {"value": 1048, "name": "搜索引擎"},
            {"value": 735, "name": "直接访问"},
            {"value": 580, "name": "邮件营销"},
            {"value": 484, "name": "联盟广告"},
            {"value": 300, "name": "视频广告"}
        ]
    }
    return render_template('index.html', chart_data=chart_data)

if __name__ == '__main__':
    app.run(debug=True)

2.前端可视化实现

在 templates 里新建 index.html 文件,并复制下列代码,关键代码已添加注释。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Flask整合ECharts示例</title>
    <!-- 引入 ECharts 库 -->
    <script src="{{ url_for('static', filename='js/echarts.min.js') }}"></script>
    <style>
        #main {
            width: 1000px;
            height: 600px;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    <h1 style="text-align: center;">网站访问来源统计</h1>
    <!-- 为 ECharts 准备一个具备大小的 DOM -->
    <div id="main"></div>
    
    <script type="text/javascript">
        // 初始化图表
        var myChart = echarts.init(document.getElementById('main'));
        
        // 配置项
        var option = {
            title: {
                text: '{{ chart_data.title }}',
                subtext: '{{ chart_data.subtitle }}',
                left: 'center'
            },
            tooltip: {
                trigger: 'item',
                formatter: '{a} <br/>{b}: {c} ({d}%)'
            },
            legend: {
                orient: 'vertical',
                left: 'left',
                data: {{ chart_data.legend | tojson }}
            },
            series: [
                {
                    name: '访问来源',
                    type: 'pie',
                    radius: '50%',
                    // 主要在这里放入配置好的数据
                    data: {{ chart_data.series | tojson }},
                    emphasis: {
                        itemStyle: {
                            shadowBlur: 10,
                            shadowOffsetX: 0,
                            shadowColor: 'rgba(0, 0, 0, 0.5)'
                        }
                    }
                }
            ]
        };
        
        // 使用配置项显示图表
        myChart.setOption(option);
        
        // 响应式调整大小
        window.addEventListener('resize', function() {
            myChart.resize();
        });
    </script>
</body>
</html>

🎉 最终效果

运行效果如下,只需修改数据,直接使用 Echarts 图表,非常高效便捷

在这里插入图片描述

因为篇幅原因,本期只讲整合 Echarts,如果想继续跟进,点赞关注不迷路 🐾

💡 番外

进阶技巧:

  • 使用 Ajax 实现实时数据刷新
  • 添加图表主题切换功能
  • 结合数据库实现动态数据加载

📚 下期预告

在下一期教程中,我们将:

  • 连接 MySQL 实现真实数据获取
  • 提供更多常用图表

🔄 遇到任何问题?欢迎在评论区交流讨论!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值