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

10-14 19:02