《使用 Python Flask + MySQL + ECharts 构建销售数据看板》实战案例笔记
技术栈说明
- 后端:Python 3.10 + Flask 框架
- 数据库:MySQL
- 前端:ECharts 5.4 + HTML/CSS
- 数据可视化:柱状图 / 折线图 / 饼图 / 雷达图
项目结构
project/
├── server.py # 后端服务
└── templates/└── index.html # 前端页面
1. 后端代码 (server.py)
from flask import Flask, jsonify, render_template
from flask_cors import CORS
import pymysqlapp = Flask(__name__)
CORS(app)
db_config = {'host': 'localhost','user': 'root','password': 'root','database': 'demo2','port': 3306,'charset': 'utf8mb4'
}def get_db_connection():try:conn = pymysql.connect(**db_config)return connexcept pymysql.Error as e:print(f"数据库连接失败: {e}")return None@app.route('/')
def index():return render_template('index.html')@app.route('/api/sales-data')
def get_sales_data():conn = get_db_connection()if not conn:return jsonify({'error': '数据库连接失败'}), 500try:with conn.cursor(pymysql.cursors.DictCursor) as cursor:query = """SELECT product, region, month, year, revenueFROM sales_dataORDER BY year, month"""