当前位置: 首页 > news >正文

5-1 使用ECharts将MySQL数据库中的数据可视化

方法一:使用Python Flask框架搭建API

对于技术小白来说,使用ECharts将MySQL数据库中的数据可视化需要分步骤完成。以下是详细的实现流程:

一、技术架构‌


后端服务‌:使用Python Flask框架搭建API(简单易学,适合新手)
数据库连接‌:通过Python的pymysql库连接MySQL
前端可视化‌:HTML + JavaScript + ECharts
数据流向‌:
MySQL数据库 → Python API → 前端请求 → ECharts渲染


二、具体步骤‌


1. 准备数据库环境‌

确保已安装MySQL,并创建测试数据

2. 搭建Python后端服务‌

(1) 安装依赖库‌

pip install flask pymysql flask-cors


(2) 创建API文件 server.py‌


from flask import Flask, jsonify
import pymysql
from flask_cors import CORS

app = Flask(__name__)
CORS(app)  # 解决跨域问题

def get_db_connection():
    return pymysql.connect(
        host='localhost',
        user='root',      # 替换为你的数据库用户名
        password='123456',# 替换为你的数据库密码
        database='demo',
        cursorclass=pymysql.cursors.DictCursor
    )

@app.route('/api/sales')
def get_sales():
    connection = get_db_connection()
    try:
        with connection.cursor() as cursor:
            sql = "SELECT product, amount, month FROM sales"
            cursor.execute(sql)
            result = cursor.fetchall()
            return jsonify(result)
    finally:
        connection.close()

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

3. 测试API‌

运行 python server.py,访问 http://localhost:5000/api/sales 应看到JSON数据。

4. 创建前端页面‌

(1) HTML文件 index.html‌


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>数据大屏</title>
    <!-- 引入ECharts -->
    <script src="https://cdn.jsdelivr.net/npm/echarts@5.4.3/dist/echarts.min.js"></script>
    <style>
        .chart-container {
            width: 600px;
            height: 400px;
            margin: 20px;
            display: inline-block;
        }
    </style>
</head>
<body>
    <h1>销售数据大屏</h1>
    
    <!-- 图表容器 -->
    <div id="chart1" class="chart-container"></div>
    <div id="chart2" class="chart-container"></div>

    <script src="app.js"></script>
</body>
</html>

方法二:Pyecharts图表嵌入HTML——iframe嵌入法

具体步骤

1、用pyecharts实现图表,渲染成html文件,例如line_chart.html

2、html文件中利用iframe嵌入已渲染好的line_chart.html文件。

<!DOCTYPE html>
<html>
<head>
    <title>销售看板</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
    <div class="container mt-4">
        <div class="row">
            <!-- 嵌入柱状图 -->
            <div class="col-md-6">
                <iframe src="bar_chart.html" frameborder="0" style="width:100%;height:400px"></iframe>
            </div>
            
            <!-- 嵌入折线图 -->
            <div class="col-md-6">
                <iframe src="line_chart.html" frameborder="0" style="width:100%;height:400px"></iframe>
            </div>
        </div>
    </div>
</body>
</html>

相关文章:

  • NLua 文档
  • Facebook的社交媒体伦理:信息传播与责任的平衡
  • Java集成MQTT和Kafka实现稳定、可靠、高性能的物联网消息处理系统
  • C语言未定义的标识符怎么解决
  • [创业之路-340]:投资的本质:前人栽树后人乘凉。企业固定资产投资
  • 论文速递| ECG去噪新方法:小波+ CNN提升可穿戴精度
  • Uni-App 双栏联动滚动组件开发详解 (电梯导航)
  • 【JVM】性能监控与调优概述篇
  • 面试提问:数仓设计不分层可以吗?
  • 关于 51 单片机显示多个数码管时出现残影
  • 基于springboot的高校心理教育辅导系统(019)
  • Django之旅:第二节--启动运行django
  • ffmpeg+ubuntu编译库(完整版本)
  • 基于javaweb的SpringBoot时装购物系统设计与实现(源码+文档+部署讲解)
  • 常见业务分析模型
  • 3D开发工具HOOPS SDK:赋能CAM软件开发的利器
  • 美团Leaf分布式ID生成器:使用详解与核心原理解析
  • debian12运行sql server2022(docker):导入.MDF .LDF文件到容器
  • PHP与Python无缝融合,开启跨语言开发新纪元
  • 内网安全-横向移动Kerberos 攻击SPN 扫描WinRMWinRSRDP
  • 澎湃思想周报|《混沌少年时》与青少年社媒禁令;自雇陷阱
  • 全总联合六部门印发工作指引,共保劳动者合法权益
  • 国家统计局:1-4月份,全国固定资产投资同比增长4.0%
  • 新华社千笔楼:地方文旅宣传应走出“魔性尬舞”的流量焦虑
  • 广西隆林突发山洪,致3人遇难1人失联
  • 新任重庆市垫江县委副书记刘振已任县政府党组书记