【发布时间】:2021-04-19 13:53:11
【问题描述】:
我正在尝试返回所有用户信息,但每次运行请求时它都会返回一个空的 JSON 对象
我的模型和架构:
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow
db = SQLAlchemy()
ma = Marshmallow()
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String)
email = db.Column(db.String(100), unique=True)
password = db.Column(db.String(100), unique=True)
def __init__(self, name, email, password):
self.name = name
self.email = email
self.password = password
class UserSchema(ma.Schema):
class meta:
fields = ('id', 'name', 'email', 'password')
user_schema = UserSchema()
GET 函数:
@auth.route('/getuser/<id>', methods=['GET'])
def get_user(id):
password = request.json['password']
user = User.query.get(id)
if not user or not bcrypt.checkpw(password.encode('utf-8'), user.password.encode('utf-8')):
return jsonify({'msg': 'Wrong email or password'})
result = user_schema.dump(user)
return result
当用户被添加到数据库时,密码被转换为纯字符串
【问题讨论】:
-
是否需要在路由中指定
id是int?@auth.route('/getuser/<int:id>', methods=['GET']) -
我会添加一个 print(result) 来看看会发生什么。
-
不需要jsonify(result)吗?
-
我有一个打印,它也返回为空,将 id 更改为 int 没有帮助。 Jsonify 没有区别。
标签: python flask flask-sqlalchemy marshmallow flask-marshmallow