尝试在flask_sqlalchemy中进行查询。我想使用列表的dict进行筛选,并使用ORM而不是查询字符串。仍然是SQLAlchemy的新手,所以任何帮助都将不胜感激。
我知道我能做到:
filter = {
'name': 'apple'
, 'age': 14
}
Items.query.filter(**filter).all()
翻译过来就是:
SELECT * FROM items WHERE name = 'apple' AND age = 14;
但我想要:
filter = {
'name': ['apple', 'pear']
, 'age': [14, 15, 21]
}
未来:
SELECT * FROM items WHERE name IN ('apple', 'pear') AND age IN (14, 15, 21);
这似乎奏效了:
filter = {
'name': ['apple', 'pear']
, 'age': [14, 15, 21]
}
items = Item.query
for field in query:
items = items.filter(getattr(Item, field).in_(query[field]))
items = items.all()