簡體   English   中英

SQLAlchemy 按列表字典過濾

[英]SQLAlchemy filter by dict of lists

嘗試在flask_sqlalchemy 中進行查詢。 我想使用列表字典和使用 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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM