《使用 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 pymysql
app = 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 conn
except 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': '数据库连接失败'}), 500
try:
with conn.cursor(pymysql.cursors.DictCursor) as cursor:
query = """
SELECT product, region, month, year, revenue
FROM sales_data
ORDER BY year, month
"""