2016-02-05 20 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

謝謝。我尋找這個確切的問題,並花了我一段時間才能得到你的答案。現在像魅力一樣工作。 –