在 Peewee 中获取查询结果列表

Get list of query results in Peewee

正在考虑从 SQLAlchemy 切换到 peewee,但有一个基本问题,因为我找不到这方面的示例。我想执行一个 returns 匹配对象列表的查询。有效的方法是获取 returns 一条记录:

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

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

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

延迟执行了一个 peewee 查询。它 returns 一个必须在查询执行之前访问的迭代器,可以通过遍历记录或直接调用执行方法。

强制立即执行查询:

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)