Flask 后端返回无效数据
Flask back-end returning invalid data
我正在构建 Flask 后端。我有这条路线应该 return 匹配电子邮件的 ID
@app.route('/login', methods=['POST'])
def login():
email = request.json['data']
id = session.query(Users).filter_by(email=Users.estudent_email)
result = users_schema.dump(id)
return jsonify(result)
我正在向它发送此数据
{
"data": "name.lastname@email.com"
}
但它 return 是一大堆不正确的数据。它应该 return 数据库中分配给持有电子邮件的用户的单个 ID。可能是什么原因?我正在使用 Marshmallow 和 SQLAlchemy ORM。
问题可能出在这一行:
id = session.query(Users).filter_by(email=Users.estudent_email)
你似乎用错误的方式进行了平等检查。 Users.estudent_email
引用了数据库的整个字段,而 email
是 filter_by
中的命名参数, 而不是 email
中定义的上一行。
我无法测试,但我想你想要:
id = session.query(Users).filter(Users.estudent_email==email)
或
id = session.query(Users).filter_by(email=email)
至于序列化和 result = users_schema.dump(id)
,我不知道,因为没有提供足够的上下文来确定如何实现它。
我正在构建 Flask 后端。我有这条路线应该 return 匹配电子邮件的 ID
@app.route('/login', methods=['POST'])
def login():
email = request.json['data']
id = session.query(Users).filter_by(email=Users.estudent_email)
result = users_schema.dump(id)
return jsonify(result)
我正在向它发送此数据
{
"data": "name.lastname@email.com"
}
但它 return 是一大堆不正确的数据。它应该 return 数据库中分配给持有电子邮件的用户的单个 ID。可能是什么原因?我正在使用 Marshmallow 和 SQLAlchemy ORM。
问题可能出在这一行:
id = session.query(Users).filter_by(email=Users.estudent_email)
你似乎用错误的方式进行了平等检查。 Users.estudent_email
引用了数据库的整个字段,而 email
是 filter_by
中的命名参数, 而不是 email
中定义的上一行。
我无法测试,但我想你想要:
id = session.query(Users).filter(Users.estudent_email==email)
或
id = session.query(Users).filter_by(email=email)
至于序列化和 result = users_schema.dump(id)
,我不知道,因为没有提供足够的上下文来确定如何实现它。