小王: 嘿,小李,我最近在做一个项目,叫做“一站式网上服务大厅”。我想加入一个排行榜的功能,你觉得怎么样?
小李: 听起来不错!排行榜可以用来展示用户活跃度或者服务质量。你打算怎么实现呢?
小王: 我打算使用Python的Flask框架来搭建网站,并且用MySQL数据库来存储数据。对于排行榜,我们可以定期更新用户的积分或评分,然后按这个分数进行排序。
小李: 好主意!我们首先需要创建数据库表。比如,一个用于存储用户信息,另一个用于记录积分或评分。你有具体的表结构吗?
小王: 是这样的:
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255) NOT NULL, email VARCHAR(255) UNIQUE NOT NULL, password_hash VARCHAR(255) NOT NULL, score INT DEFAULT 0 );
小李: 看起来很不错。接下来,我们需要编写一些Python代码来处理用户注册、登录以及积分更新。还有,如何显示排行榜呢?
小王: 对于用户操作,我会使用Flask-Login来管理会话。至于排行榜,我们可以编写一个视图函数,查询数据库并按积分降序排序。
小李: 那么,让我们看看具体的代码吧。首先,用户模型类:
from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) password_hash = db.Column(db.String(128), nullable=False) score = db.Column(db.Integer, default=0)
小王: 明白了。现在,让我们添加一个视图函数来显示排行榜:
@app.route('/rank') def rank(): top_users = User.query.order_by(User.score.desc()).limit(10).all() return render_template('rank.html', users=top_users)
小李: 很好,这样我们就有了基本的架构。剩下的就是前端部分了,用HTML和CSS来美化界面。