我知道您可以通过向 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/