如何在 Python 和 Flask 上返回列表?

mol*_*ind 7 python api list flask

我试图在烧瓶中返回这个列表。教师是一个类并返回对象。

@app.route('/v1/teachers', methods=['GET'])
def getTeachers():
  teachers = []
  for teacher in Teacher.objects:
    teachers.append(teacher)
  return teachers
Run Code Online (Sandbox Code Playgroud)

此代码返回的典型错误 TypeError: 'list' object is not callable The view function did not return a valid response.

我快疯了,我不知道发生了什么。有人知道吗?

谢谢!!

编辑:

我已经解决了。问题不在于如何返回列表,问题在于对象的 JSON 序列化。

@app.route('/v1/teachers', methods=['GET'])
def getTeachers():
  teachers = []
  for teacher in Teacher.objects:
     teacherJson = teacher.to_json()
     teacherData = json.loads(teacherJson)
     teachers.append(teacherData)
  return jsonify({'teachers': teachers})
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助。

小智 15

你不能直接从烧瓶视图返回列表。请尝试 jsonify

from flask import jsonify
@app.route('/v1/teachers', methods=['GET'])
def getTeachers():
   teachers = []
   for teacher in Teacher.objects:
      teachers.append(teacher)
   return jsonify(teachers)
Run Code Online (Sandbox Code Playgroud)