三角板带烧瓶

时间:2020-05-26 00:46:58

标签: sql flask sqlalchemy

我想用flask框架制作排行榜。我有用户和奖牌模型以及多对多关系表。我想展示获得最多奖牌的前十名用户,我想知道是否有一种“轻松”的查询方式。相关代码如下:

用户模型:

class User(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), index=True, unique=True)
    medals = db.relationship('Medal', secondary=medals_users, backref='user')

奖章模型:

class Medal(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64))

关系表:

medals_users = db.Table('medals_users',
          db.Column('user_id', db.Integer, db.ForeignKey('user.id'), nullable=False),
          db.Column('medal_id', db.Integer, db.ForeignKey('medal.id'), nullable=False),
          db.PrimaryKeyConstraint('user_id', 'medal_id'))

我当时认为解决方案应属于以下方面:

top = User.query.filter_by(User.medal.count()).order_by(User.medal.count()).limit(10).all()

但是似乎我迷路了,任何帮助将不胜感激

0 个答案:

没有答案