我正在协助一个使用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(使用前将#替换为@)