考虑从 SQLAlchemy 切换到 peewee 但有一个基本问题,因为我无法找到这方面的示例。我想执行一个返回匹配对象列表的查询。有效的是 get 返回一条记录:
Topping.select().where(Topping.id==jalapenos.id).get()
我想要得到的是一个结果列表,其中所有示例都表明我应该迭代。有没有办法获取结果列表:
Topping.select(Topping).where(Topping.stock > 0)
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)
有时执行语句也不起作用。这对我有用 查询 = Topping.select().where(Topping.stock > 0)
结果 = query.dicts() 对于结果中的行: 打印(行)