获取Peewee中的查询结果列表

问题描述 投票:0回答:2

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

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

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

Topping.select(Topping).where(Topping.stock > 0)
python python-2.7 peewee
2个回答
20
投票

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

强制立即执行查询:

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)

0
投票

有时执行语句也不起作用。这对我有用 查询 = Topping.select().where(Topping.stock > 0)

结果 = query.dicts() 对于结果中的行: 打印(行)

© www.soinside.com 2019 - 2024. All rights reserved.