python - SQLALchemy 动态 filter_by

标签 python orm sqlalchemy

我知道您可以通过向 filter_by 提供 **kwargs 来为 SQLAlchemy 的查询构建动态过滤器。

例如

    filters = {'id': '123456', 'amount': '232'}
    db.session.query(Transaction).filter_by(**filters)

下面是我的问题:

如果我需要通过“大于”或“小于”子句进行查询怎么办? 例如(原始 SQL):

 select * from transaction t 
 where t.amount > 10 and t.amount < 100;

最佳答案

我建议使用 filter,而不是使用 filter_by,它为您提供了更多选择。

例如(来自手册):

db.session.query(MyClass).filter(
    MyClass.name == 'some name',
    MyClass.id > 5,
)

关于您的情况:

filters = (
    Transaction.amount > 10,
    Transaction.amount < 100,
)
db.session.query(Transaction).filter(*filters)

关于python - SQLALchemy 动态 filter_by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29885879/

相关文章:

python - 在 SQLAlchemy 中获取表名

python - 我可以将views.py文件放在django的项目文件夹中吗?

python - 如何使用 python-pptx 在生成的幻灯片中设置幻灯片编号

python - 为多个数组实现 numpy.in1d 的最有效方法

c# - 使用序列化维护对象关系映射

python - SQLAlchemy如何获取字段的最大值?

python - 服务器日志和我的客户端之间的 SOAP 调用执行时间测量差异

android - 如何在执行 InsertOrReplace 时解决 greenDAO "No such table exists error"?

php - 在父表和查找表之间创建 Eloquent 关系?

python - 事务和 sqlalchemy