考虑从SQLAlchemy切换到peewee,但有一个基本问题,因为我无法找到这样的例子。我想执行一个返回匹配对象列表的查询。什么有效是获取哪个返回单个记录:
Topping.select().where(Topping.id==jalapenos.id).get()
我想得到的是一个结果列表,所有示例都表明我应该迭代。有没有办法从以下结果中获取结果:
Topping.select(Topping).where(Topping.stock > 0)
答案 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)