python - SQLAlchemy Marshmallow 返回空 JSON Flask
问题描述
我正在尝试返回所有用户信息,但每次运行请求时它都会返回一个空的 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()
获取函数:
@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
将用户添加到数据库时,密码将转换为纯字符串
解决方案
为了返回特定用户的所有详细信息,您可以使用以下代码:
def get_user(id):
user = User.query.filter_by(id=id).first()
if user is not None:
response = jsonify({'result':user.to_json()})
else
response = jsonify({'message': 'cannot find user'}), 404
return response
共享的代码有获取JSON格式的用户详细信息的详细信息。
推荐阅读
- apache-kafka - CommitFailedException:提交无法完成,因为该组已经重新平衡并将分区分配给另一个成员
- jquery - 水平列表中的 jQuery UI 自动完成值
- javascript - javascript将数组的一些元素排序到另一个数组中
- python - Sqlalchemy + pandas:数据库会话管理
- c# - 将 uint 传递给 IntPtr 参数
- python - 通过 XPATH 通过 LXML 获取元素
- node.js - 返回带有 node.js 的 zip 文件和 express 出错
- ruby - Capybara 没有将 Symbol 隐式转换为 Integer
- python - Python:我不能从标准输入获得超过 65885 个字节
- python - 解析字符串并分配给同一个变量?