python flask项目:python读取数据库goods_top_sql = "select monthly,total_price from goods_train",其中monthly为日期(YYYY/MM形式),定义data[],将里面的monthly转换为季度date为单位并求出每年每季度的销售总额sales,然后将求出的date和sales存入data[],然后然后以json格式返回,在根据返回的data的数据用ajax赋值到echarts柱状图里,写出代码
时间: 2024-02-12 07:02:21 浏览: 30
好的,以下是代码实现。
在Flask项目中,先导入需要的模块:
```python
from flask import Flask, jsonify
import pymysql
import json
```
建立数据库连接,读取数据并进行季度销售额的计算:
```python
app = Flask(__name__)
db = pymysql.connect(host="localhost", user="root", password="123456", database="goods_db", charset="utf8")
cursor = db.cursor()
goods_top_sql = "select monthly,total_price from goods_train"
cursor.execute(goods_top_sql)
results = cursor.fetchall()
data = {}
for result in results:
month = result[0]
total_price = result[1]
# 将月份转换为季度
month = month.split('/')
quarter = (int(month[1]) - 1) // 3 + 1
date = month[0] + 'Q' + str(quarter)
# 按照年份和季度进行销售额汇总
year = month[0]
if year not in data:
data[year] = {}
if date not in data[year]:
data[year][date] = 0
data[year][date] += total_price
```
将结果存储到一个字典中,并将字典转换为JSON格式返回:
```python
# 将结果存储到一个字典中
result_data = []
for year in data:
for date in data[year]:
result_data.append({"date": date, "sales": data[year][date]})
# 将字典转换为JSON格式返回
@app.route("/sales_data", methods=["GET"])
def get_sales_data():
return jsonify({"data": json.dumps(result_data)})
```
最后,使用AJAX获取JSON格式的数据,并将数据赋值到echarts柱状图中:
```javascript
$.ajax({
url: "/sales_data",
type: "get",
dataType: "json",
success: function (data) {
var sales_data = JSON.parse(data.data);
var date = [];
var sales = [];
for (var i = 0; i < sales_data.length; i++) {
date.push(sales_data[i].date);
sales.push(sales_data[i].sales);
}
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '季度销售额'
},
tooltip: {},
legend: {
data: ['销售额']
},
xAxis: {
data: date
},
yAxis: {},
series: [{
name: '销售额',
type: 'bar',
data: sales
}]
};
myChart.setOption(option);
},
error: function (data) {
console.log("error");
}
});
```