如何使用marshmallow python从sqlite查询中获取json响应

2024-06-16 10:50:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我搜索了很多,但没有找到解决方案。我使用SQLite进行查询并返回HTML页面。但是现在我要使用Reactjs,需要将响应发送到Reactjs页面。 这是我的database.py文件:

class User(db.Model, Mixin):
    __tablename__ = "users"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Integer, unique=True)
    timestamp = db.Column(db.DateTime(), index=True, default=datetime.utcnow)
    prefix = db.Column(db.String(2))

    def __init__(self, name, prefix):
        self.name = name
        self.prefix = prefix

class UserSchema(ma.Schema):
    class Meta:
        model = User
        fields = ('name', 'prefix')
        load_instance = True


user_schema = UserSchema()
user_schema = UserSchema(many=True)

这是我的查询,需要以json的形式发送响应

import app.database as data
@core.route('/user_display/<int:user_id>', methods=["GET"])
def user_display(user_id):
    all_users = data.User.query.all()
    dump_data = data.user_schema.dump(all_users)
    return jsonify(dump_data)

上面的代码发送josn响应,如下所示 “数据”:[ { “名称”:“user1”, “前缀”:“Mr” } ], 但是我需要下面查询的结果

user\u name=data.user.query.filter\u by(id=user\u id.first().name

user\u id=data.user.query.order\u by(data.user.id.desc()).first().id

但是得到下面的错误

 obj_prototype = next(iter(obj))
TypeError: 'int' object is not iterable

如何解决此问题并获取用户名和ID


Tags: nameselfidtruedbdataprefixschema