我正在将 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
当您查询和打印用户时,您将获得用户列表。与股票代码相关联。您可以使用 jinja2
length
内置过滤器 {{ ticker.users | length }}
来统计列表中的用户数量。
如果你想在查询端执行此操作,你可以尝试这个
tickers =