我正在构建一个 Flask 后端。我有此路由,应返回与电子邮件匹配的 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"}但它返回了一大堆不正确的数据。它应从数据库中返回分配给保存电子邮件的用户的单个 ID。可能的原因是什么?我正在使用Marshmallow和SQLAlchemy ORM。
1 回答
人到中年有点甜
TA贡献1895条经验 获得超7个赞
问题可能出在以下行:
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)
- 1 回答
- 0 关注
- 67 浏览
添加回答
举报
0/150
提交
取消