离校管理系统是高校管理学生离校申请的重要工具。为了提高学生的积极性和参与度,我们决定在系统中加入排行榜功能。排行榜可以展示每个学生在特定指标上的排名情况,如离校申请的效率、响应速度等。
数据库设计

首先,我们需要在数据库中创建一个名为`StudentRank`的表来存储排行榜所需的数据。表结构如下:
CREATE TABLE StudentRank (
student_id INT PRIMARY KEY,
name VARCHAR(50),
score INT,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
后端开发
接下来,我们使用Python Flask框架作为后端服务。以下是一个简单的API,用于更新学生的排行榜数据:
from flask import Flask, request, jsonify
from datetime import datetime
app = Flask(__name__)
@app.route('/update_score', methods=['POST'])
def update_score():
data = request.json
student_id = data.get('student_id')
score = data.get('score')
# 更新或插入数据到StudentRank表
with db.cursor() as cursor:
cursor.execute(
"INSERT INTO StudentRank (student_id, name, score) VALUES (%s, %s, %s) "
"ON DUPLICATE KEY UPDATE score=%s, updated_at=NOW();",
(student_id, data.get('name'), score, score)
)
db.commit()
return jsonify({"message": "Score updated successfully"}), 200
if __name__ == '__main__':
app.run(debug=True)
前端展示
最后,我们需要一个前端页面来展示排行榜。这里我们使用HTML和JavaScript来实现:
<script>
async function fetchRanking() {
const response = await fetch('/get_ranking');
const ranking = await response.json();
displayRanking(ranking);
}
function displayRanking(ranking) {
const tableBody = document.getElementById('rankingTableBody');
ranking.forEach((entry, index) => {
const row = document.createElement('tr');
row.innerHTML = `
<td>${index + 1}</td>
<td>${entry.name}</td>
<td>${entry.score}</td>
`;
tableBody.appendChild(row);
});
}
</script>
