如何将sqlchemy查询转换为列表对象?



嗨,伙计们,我正试图将我的查询转换为对象,但我得到这个错误"'User'对象不可迭代">

以下是我的代码。

@app.route('/users')
def users():

rows = db.session.query(User).first(); 
for row in rows:
data.append(list(row))# data.append([x for x in row])  
return jsonify(data)

查询

的代码
rows = db.session.query(User).first(); 

选择找到的第一个对象并返回它,否则按照docs

返回None

。如果您要查询多个行,请按照docs

使用.all()函数。
data = []
rows = db.session.query(User).all(); 
for row in rows:
data.append(row)
return jsonify(data)

这将获取所有用户并将其添加到列表

我可以使用flask mashmallow

ma = Marshmallow(app)
enter code here
class User(db.Model):
id = db.Column(db.Integer,primary_key=True)
name = db.Column(db.String(200),nullable=False)
email = db.Column(db.String(200),nullable=False)
password = db.Column(db.String(200),nullable=False)


class UserSchema(ma.Schema):
class Meta:
# Fields to expose
fields = ("email", "password","name")
# Smart hyperlinking

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


@app.route("/users/")
def users():
#row= db.session.query(User)
all_users = User.query.all()
results = users_schema.dump(all_users)
return jsonify(results)


@app.route("/users/<id>")
def user_detail(id):
user = User.query.get(id)
results = user_schema.dump(user)
return jsonify(results)

最新更新