我知道您可以通过向**kwargs
提供filter_by
来为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_by
,而是使用filter
提供了更多的选项。
例如(来自手册):
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/