python flask项目:python读取数据库shop_top_sql = "select left(shop,6),SUM(monthly_sales) FROM goods GROUP BY shop ORDER BY SUM(monthly_sales) desc limit 10",定义data[],,将从数据库查到的shop和mo'n't'hly_sales存入data[],然后以json格式返回,在根据返回的data的数据赋值到echarts柱状图里,x轴赋值monthly_sales,y轴赋值shop,写出实现代码及echarts代码
时间: 2024-02-11 19:09:04 浏览: 73
Python flask框架实现查询数据库并显示数据
以下是一个简单的Python Flask代码实现,可以实现将从数据库中查询到的数据以JSON格式返回,并使用ECharts将数据绘制成柱状图。
```python
from flask import Flask, jsonify
import pymysql
app = Flask(__name__)
@app.route('/')
def index():
# 连接数据库
conn = pymysql.connect(host='localhost', user='username', password='password', database='database_name', charset='utf8')
cursor = conn.cursor()
# 查询数据
shop_top_sql = "select left(shop,6),SUM(monthly_sales) FROM goods GROUP BY shop ORDER BY SUM(monthly_sales) desc limit 10"
cursor.execute(shop_top_sql)
results = cursor.fetchall()
# 构建JSON数据
data = []
for row in results:
data.append({'shop': row[0], 'monthly_sales': row[1]})
# 关闭数据库连接
cursor.close()
conn.close()
# 将数据以JSON格式返回
return jsonify({'data': data})
if __name__ == '__main__':
app.run()
```
以下是使用ECharts绘制柱状图的代码。我们可以在HTML文件中引入ECharts的JavaScript库,并使用JavaScript代码调用ECharts的API来绘制图表。
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ECharts Example</title>
<!-- 引入 ECharts 文件 -->
<script src="https://cdn.jsdelivr.net/npm/echarts@5.1.2/dist/echarts.min.js"></script>
</head>
<body>
<!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
<div id="myChart" style="width: 600px;height:400px;"></div>
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('myChart'));
// 定义数据
var data = {{ data|tojson }};
// 构建x轴和y轴数据
var xAxisData = [];
var yAxisData = [];
for (var i = 0; i < data.length; i++) {
xAxisData.push(data[i].monthly_sales);
yAxisData.push(data[i].shop);
}
// 配置项
var option = {
title: {
text: 'Top 10 Shops by Monthly Sales'
},
tooltip: {},
xAxis: {
type: 'value',
name: 'Monthly Sales'
},
yAxis: {
type: 'category',
name: 'Shop',
data: yAxisData
},
series: [{
type: 'bar',
data: xAxisData
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>
</body>
</html>
```
在上面的代码中,我们首先定义了一个`data`变量,它包含我们从服务器接收到的JSON数据。我们然后使用JavaScript代码遍历数据,构建x轴和y轴数据。最后,我们定义了一个ECharts的配置项,其中包含了我们要绘制的图表的类型、标题、x轴和y轴等信息。最后,我们使用`setOption`方法将配置项应用到图表中,从而绘制出我们需要的柱状图。
阅读全文