2017-08-05 19 views
0

私はusersカラムを持っていますが、jsonとajaxを介してhtmlファイルにすべてのデータを出力しようとしています。 1行から複数​​の列を返すことができます。 しかし、私は戻って複数の行を呼び出す方法を把握することができません。Flask-Json jsonオブジェクトとして複数の行を返すにはどうすればいいですか?

ここに私のコードと、私が試したコメントのカップルです。

@app.route('/test', methods=['POST', 'GET']) 
def test(): 
    #thisworks 
    works = user.query.filter_by(name = 'foo').first() 
    return jsonify(name = works.name, id = works.id) 

    #BELOW LINES DONT WORK 
    #st = user.query.all() 
    #for i in st: 
    #jsonify(id = st.id[i] , name = st.username[i]) 

また、forループまたは辞書内の辞書をjqueryで呼び出す必要がありますか?

どうかありがとうございました ありがとうございました。

答えて

0

ここで考えているのは、jsonifyする前に必要なすべてのデータをリスト/配列に入れることです。 あなたの例を使用する:

st = user.query.all() 
all_users = [{'name':user.name,'id':user.id} for user in st] 
return jsonify(all_users) 

ホープこれはjqueryので結果を使用するには

を助け、あなたはこの

$.get('mysite.com/users').then(function(response) { // ajax to get users 
    users = response; // save to variable 
    $.each(users, function(key, val) {   // iterate over result 
     console.log(val.id); 
     console.log(val.name) 
    }); 
}); 
+0

おかげのようないくつかのことを行うことができます! jsonデータはshdと同じように返されます。これは単一のオブジェクトではなく複数のオブジェクトが複数のキーで返されているので、jqueryからそのデータを読み取る方法についても助けてください。 – reevkandari

+0

jqueryでそのデータを読み取る方法を示す答えを更新しました。 – sea

0

データ構造を構築してから、jsonifyを使用したいと思うようです。次のようなものがあります。

# create a list of user ids and names 
user_data = [] 
for user in user.query.all(): 
    user_data.append({ 
     'id': user.id, 
     'name': user.name, 
    }) 
return jsonify(user_data) 

このデータ構造を作成するにはいくつかの方法がありますが、例としては明らかです。

関連する問題