2016-02-05 21 views
2

我尝试使用下面的代码来渲染PeeWee查询结果为JSON获取完整的结果回来从PeeWee查询(转换成JSON)

@app.route('/') 
def index(): 
    c = Category.select().order_by(Category.name).get() 
    return jsonify(model_to_dict(c)) 

这样做我只得到一个行回来从查询。我很确定这个问题是我使用get(),文档清楚地说,它只返回一行。我用什么来代替get()整个结果回来?下面

这个问题我指出了正确的方向,但也使用get()

Peewee model to JSON

+1

我敢肯定的答案是,查询需要进行迭代,获取每行;并且get()是获取第一行的简写。我在想,可能有一个get()方法不需要显式迭代。我不认为有。对? –

回答

5

我在的地方获取的使用什么()来获取整个结果回来?

修改你的代码:

query = Category.select().order_by(Category.name) 
return jsonify({'rows':[model_to_dict(c) for c in query]}) 

或者,你可以这样做:

query = Category.select().order_by(Category.name).dicts() 
return jsonify({'rows':list(query)}) 
+0

只好将jsonify的返回值修改为字典。看到这个q/a http://stackoverflow.com/questions/12435297/how-do-i-jsonify-a-list-in-flask。谢谢,查理,你让我前进。 –

+0

谢谢。我寻找这个确切的问题,并花了我一段时间才能得到你的答案。现在像魅力一样工作。 –