Flask中使用jsonify如何正确返回包含全部学生数据的字典内容?
问题原因
你代码的核心错误是容器类型选择错误+循环赋值逻辑错误:
- 你将
studentList2定义为字典类型,每次循环直接对它做赋值操作,新的学生字典会覆盖旧值,最终只会保留最后一次循环的学生数据 - 多组同结构的学生数据应该用列表存储,每次循环将单条学生字典追加到列表中即可
修正后的代码
@app.route('/students') def students(): # 不要用list作为变量名,避免覆盖Python内置的list关键字 student_list = Student.query.all() # 定义列表存储所有学生的字典数据 student_list_2 = [] for student in student_list: student_item = {'id': student.id, 'title': student.title, 'email': student.email} student_list_2.append(student_item) # 直接jsonify列表即可,Flask会自动处理为标准JSON数组格式 return jsonify(student_list_2)
可选:外层包裹字典格式
如果接口要求响应整体为字典结构而非数组,可以按如下格式返回:
return jsonify({ "code": 200, "message": "查询成功", "data": student_list_2 })
内容的提问来源于stack exchange,提问作者Lovelyzombie
相关产品推荐
相关产品推荐

