学生成绩查询的flask代码运行结果随便一个图片
时间: 2024-12-06 09:21:51 浏览: 5
在Flask中,我们通常不会直接生成图片来显示学生成绩查询的结果,因为这与传统的API设计不符。然而,如果你需要将成绩数据可视化成图表,比如柱状图或饼图,你可以利用如Matplotlib、Chart.js等库。这里是一个简单的例子,展示如何在Flask应用中通过返回JSON数据并结合前端模板动态绘制图表:
```python
from flask import Flask, jsonify
import matplotlib.pyplot as plt
import io
import base64
app = Flask(__name__)
@app.route('/scores')
def get_scores():
# 假设这是你的成绩数据,存储在一个字典或列表中
scores = {
'张三': [90, 85, 95],
'李四': [88, 92, 90],
'王五': [92, 93, 91]
}
data = []
for name, grades in scores.items():
data.append({
'name': name,
'scores': grades,
'average': sum(grades) / len(grades)
})
# 创建图表
fig, ax = plt.subplots()
ax.barh(data.keys(), data['average'])
ax.set_xlabel('平均分')
# 将图像转换为BytesIO
buffer = io.BytesIO()
plt.savefig(buffer, format='png')
buffer.seek(0)
# 返回Base64编码的图像
image_data = base64.b64encode(buffer.getvalue()).decode()
return jsonify({'image': f'data:image/png;base64,{image_data}'})
if __name__ == '__main__':
app.run(debug=True)
```
当你访问`http://localhost:5000/scores`时,会得到一个包含学生姓名、平均分及图片URL的响应。在HTML前端,你可以解析这个响应并在适当的地方插入图片。
阅读全文