我正在使用flask_SQLAlchemy和Postgres DB运行Flask应用。
我想为用query.all()检索的行打印()所有列值
我已经阅读了本文档,但是无法检索所需的内容。 https://docs.sqlalchemy.org/en/13/orm/query.html 我是Alchemy的新手。
# the class model
class Users(db.Model):
__tablename__ = "users"
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String, nullable=False)
hash = db.Column(db.String, nullable=False)
reg_date = db.Column(db.DateTime, nullable=False)
enabled = db.Column(db.Boolean, nullable=False
# Query all users
users = Users.query.all()
# try to iterate
for row in users:
print(row.all())
actual results:
before loop:
>>> <Users 1>, <Users 2>, <Users 3>, <Users 4>
after loop:
>>> error all() doesn't apply to row
expected result, not achieved:
>>>
{id="1", username="yyy", hash="xxx", reg_date"zzz", enabled"yyy"}
....
{id="n", username="ttt", hash="nnn", reg_date"jjjj", enabled"oooo"}
答案 0 :(得分:0)
all
仅用于获取所有记录,然后应使用列名进行显示或执行其他任何操作:
users = Users.query.all()
for user in users:
print(user.username)
print(user.reg_date)
print(f"<id={user.id}, username={user.username}>")
为了获得所需的结果(即打印所有用户的列表),可以打印users
变量:
print(users)
您应注意,users
列表包含Users
个对象,因此打印该列表实际上将转储其表示形式;并且,如果您想控制这些对象的显示方式,可以使用{{ __repr__
模型(对象)中的1}}方法:
Users