如何在 Flask-sqlalchemy 中使用 count()

2024-01-01

我正在协助一个使用flask-sqlalchemy 的项目。
我想要一个数据库查询来计算表中的记录数。

我可以用吗table.query.filter_by(condition).count()直接地?
或者有什么我需要补充的吗?

请帮助我。我是初学者。提前致谢!


给出的答案都没有地址Flask-sqlalchemy具体来说,您将完全使用您给出的示例:

Table.query.filter_by(condition).count()

你可以执行.count()不带过滤器:

Table.query.count()

您还可以使用 M2M 关系进行计数:

ParentTable.children.count()

您可以直接在 jinja 模板中使用其中任何一个,例如:

{{ Table.query.filter_by(condition).count() }}

奖励积分(注重表现):

.count()有点慢(特别是对于 MySQL,由于子查询的处理很差),因此,您可以使用如下所示的自定义计数:

db.session.execute(Table.query.filter_by(condition).statement.with_only_columns([func.count()]).order_by(None)).scalar()

这是假设db是您的 SQLAlchemy 实例(即db = SQLAlchemy(app))。虽然有点拗口,但它会为您节省一些大型查询的开销。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Flask-sqlalchemy 中使用 count() 的相关文章

随机推荐