小明:嘿,小李,最近我们在做一个数字迎新系统,想加个排行榜功能,你怎么看?
小李:哦,排行榜啊,这挺常见的。你可以用数据库来存储学生的信息,比如姓名、成绩或者参与活动的积分。
小明:那怎么实现呢?我有点懵。
小李:我们可以用Python Flask框架来搭建后端,然后用MySQL或SQLite做数据库。先设计一个表,比如users,包含id、name、score这些字段。
小明:听起来不错,那代码怎么写呢?
小李:举个例子,这里是一个简单的模型定义:
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), unique=True)
score = db.Column(db.Integer, default=0)
小明:明白了,那怎么显示排行榜呢?
小李:可以用一个路由来获取所有用户,并按分数排序,返回JSON数据。前端再根据这个数据渲染排行榜。
小明:那具体怎么写这个路由?
小李:如下所示:
@app.route('/leaderboard')
def leaderboard():
users = User.query.order_by(User.score.desc()).all()
return jsonify([{'name': user.name, 'score': user.score} for user in users])
小明:太好了,这样就实现了排行榜功能!
小李:没错,这就是数字迎新系统中常见的一种功能,可以激励新生参与活动。
小明:谢谢你,我明白了!