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 引用了数据库的整个字段,而 emailfilter_by 中的命名参数, 而不是 email 中定义的上一行。

我无法测试,但我想你想要:

id = session.query(Users).filter(Users.estudent_email==email)

id = session.query(Users).filter_by(email=email)

至于序列化和 result = users_schema.dump(id),我不知道,因为没有提供足够的上下文来确定如何实现它。