【问题标题】:Flask-Json How do i return mutiple rows as json objectsFlask-Json我如何将多行作为json对象返回
【发布时间】:2018-01-13 08:24:06
【问题描述】:

我有一个用户列,我正在尝试通过 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])

另外,我是否必须在 jquery 中使用 for 循环或字典中的字典来调用它?

请帮我解决这个问题 谢谢。

【问题讨论】:

    标签: jquery json ajax flask flask-sqlalchemy


    【解决方案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)
       });
    });
    

    【讨论】:

    • 谢谢! json 数据按原样返回。但是您能否帮助我了解如何从 jquery 读取该数据,因为这不是单个对象,而是使用多个键返回多个对象。
    • 我已经更新了答案以显示如何在 jquery 中读取该数据。
    【解决方案2】:

    看起来你想构建你的数据结构,然后在上面使用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)
    

    有几种方法可以创建该数据结构,但作为示例,这似乎很清楚。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多