SQLAlchemy 中的查询查找
Posted
技术标签:
【中文标题】SQLAlchemy 中的查询查找【英文标题】:Query lookups in SQLAlchemy 【发布时间】:2022-01-16 12:35:09 【问题描述】:我在 SQLAlchemy 中找不到任何关于查找 api 的信息,是否支持?
我说的是 Django ORM 中的这个特性:https://docs.djangoproject.com/en/4.0/ref/models/lookups/
这对我的情况非常有用,因为我在前端有一个带有许多过滤选项的表,而在 Django 中我可以只使用queryset.filter(**kwargs)
。
如果不支持,有什么办法可以实现吗?
【问题讨论】:
【参考方案1】:在 SQLAlchemy 1.4 中,您可以执行 Query.filter_by(**kwargs)
,如果这是您正在寻找的。 (docs)
不知道这个 API 有没有进 2.0。
编辑:
似乎在 2.0 中他们添加了另一层抽象,现在是 Select.filter_by(**kwargs)
(docs)
【讨论】:
它看起来很相似,但它只允许找到完全匹配吗?我的意思是,如果我需要过滤some_field > 0
的位置,例如
对于布尔表达式,您可以使用Query.filter(MyClass.some_field > 0)
或更通用的Query.filter(*filter_criteria)
。 (这是filter_by
正上方文档中的条目)以上是关于SQLAlchemy 中的查询查找的主要内容,如果未能解决你的问题,请参考以下文章
SQLAlchemy:从另一个查询的结果中查找表中的所有匹配行
Flask-SQLAlchemy 中的 LocalProxy 对象