获取Peewee中查询结果的列表

问题描述:

考虑从SQLAlchemy切换到peewee,但有一个基本问题,因为我无法找到此示例。我想执行一个返回匹配对象列表的查询。什么工作是得到它返回一个记录:获取Peewee中查询结果的列表

Topping.select().where(Topping.id==jalapenos.id).get() 

我想要得到的是结果,所有的例子表明,我要重复的列表。有没有办法从下面得到结果列表:

Topping.select(Topping).where(Topping.stock > 0) 

peewee查询是懒惰执行的。我相信它会返回一个迭代器,所以你需要告诉它你试图在查询实际执行之前使用这些数据。这可以通过迭代查询或直接调用execute方法来实现。

要强制查询立即执行:

results = Topping.select().execute() 

要查询结果转换到一个列表:

query = Topping.select().where(Topping.stock > 0) 
toppings = list(query) 
# OR 
toppings = [t for t in query] 

请注意,您可以大大简化您的查询检索单个实体附:

Topping.get(Topping.id==jalapenos.id)