如何为mongoalchemy编写一个将返回json对象数组的端点
我正在尝试如下所示:
@authenticate_bp.route('/users',methods=['GET'])
def user_list():
users = [x.serialize for x in TokenBasedAuth.query.all()]
return jsonify({'usersList': users})
如下图所示
^{pr2}$数据库i中的数据如下所示
{
"_id" : ObjectId("586a0f01558b6728388161be"),
"username" : "sam",
"firstName" : "sam",
"lastName" : "123",
"password" : "123",
"email" : "email@123"
}
我得到的错误如下所示
AttributeError:“TokenBasedAuth”对象没有属性“serialize”//Werkzeug Debugger
按预期工作的备用路线如下所示
@authenticate_bp.route('/users/list')
def users_listItr():
try:
users = TokenBasedAuth.query.all()
formatted_users=[]
for user in users:
print user
formatted_users.append({
'username':user.username,
'password':user.password,
'email':user.email,
'firstName':user.firstName,
'lastName':user.lastName
})
return json.dumps({'users':formatted_users}),
200,{'Content-Type':'application/json'}
except Exception,e:
return jsonify(status='ERROR',message=str(e))
但这不是一个好主意,因为我正在尝试为一个架构构建api,它可能包含几千个具有更复杂结构的文档请建议一种方法
请帮助获取对象数组
在我看来,最简单的方法是在结果集上使用一个带有函数的生成器,将结果对象序列化为有效的JSON:
有几种方法可以尝试创建自定义JSON编码器:See this post。一般来说,我发现,对于Flask来说,如果我需要确定一些东西,我需要坚持使用列表和dicts,因为这要简单得多。在
相关问题 更多 >
编程相关推荐