使用 Flask Sqlalchemy 获取关注者数量

问题描述 投票:0回答:1

我正在将 Flask 与 Sqlalchemy 一起使用,并且我创建了一个多对多关系表,我想在其中获取最热门的跟踪代码。

class Users(UserMixin, db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(250), unique=True, nullable=False)
    password = db.Column(db.String(250), nullable=False)
    tickers = db.relationship('Tickers', secondary='list', back_populates='users')

class Tickers(db.Model):
    __tablename__ = 'tickers'
    id = db.Column(db.Integer, primary_key=True)
    symbol = db.Column(db.String(100))
    name = db.Column(db.String(500))
    users = db.relationship('Users', secondary='list', back_populates='tickers')

class list(db.Model):
    __tablename__ = 'list'
    id = db.Column(db.Integer, primary_key=True)
    users_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    tickers_id = db.Column(db.Integer, db.ForeignKey('tickers.id'))

以下行在视图中用于检索所有代码

tickers = Tickers.query.all()

模板:

{% for ticker in tickers %}
    <li class="list-group-item">{{ ticker.name }}: {{ ticker.users }}</li>
{% endfor %}

输出:


    Apple Inc.: [<Users 1>]
    Microsoft Corporation: [<Users 1>]
    Apple Inc.: [<Users 2>]
    Tesla, Inc.: [<Users 2>]

所需输出:

    Apple Inc.: 2
    Microsoft Corporation: 1
    Tesla, Inc.: 1
python flask sqlalchemy
1个回答
0
投票

当您查询和打印用户时,您将获得用户列表。与股票代码相关联。您可以使用 jinja2

length
内置过滤器
{{ ticker.users | length }}
来统计列表中的用户数量。

如果你想在查询端执行此操作,你可以尝试这个

tickers = 
© www.soinside.com 2019 - 2024. All rights reserved.