获取Peewee中的查询结果列表

时间:2017-08-04 07:55:57

标签: python python-2.7 peewee

考虑从SQLAlchemy切换到peewee,但有一个基本问题,因为我无法找到这样的例子。我想执行一个返回匹配对象列表的查询。什么有效是获取哪个返回单个记录:

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

我想得到的是一个结果列表,所有示例都表明我应该迭代。有没有办法从以下结果中获取结果:

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

1 个答案:

答案 0 :(得分:6)

撒尿查询被懒惰地执行。我相信它返回一个迭代器,所以你需要告诉它你在查询实际执行之前尝试使用数据。这可以通过迭代查询或直接调用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)