我有一个用户列,我试图通过json和ajax在html文件上输出所有数据。 我能够从单行返回多个列。 但我无法弄清楚如何返回并调用多行。
这是我的代码以及我尝试过的一些注释事项。
@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 :(得分:1)
这里的想法是在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)
});
});
答案 1 :(得分: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)
有几种方法可以创建该数据结构,但这似乎是一个明显的例子。