为什么在打印会话对象时不是所有对象都被打印?

时间:2019-02-12 11:59:52

标签: python-3.x sqlalchemy

我正在sqlalchemy中研究python。我已经使用mapper为数据库中的一个表(用户)定义了四个对象。假设这些对象是a,b,c,d。我已将它们添加到session。然后,我查询了用户名为a(对象a)。然后,我使用了如下的for循环

Sessionclass = session_maker()
session = Sessionclass()   
session.add_all([a,b,c,d])
res = session.query(User).filter_by(username='a').first()
for obj in session:
    print(obj)

我将输出作为对象“ a”。为什么其他obj不能打印?

1 个答案:

答案 0 :(得分:0)

基本上,据我了解,您正在尝试显示session中存在的所有对象,而不管您指定的以下查询是什么。

res = session.query(User).filter_by(username='a').first()

因此,在for循环中,仅直接提供session不会使其迭代,我们必须查询user中存在的表(session

Sessionclass = session_maker()
session = Sessionclass()   
session.add_all([a,b,c,d])
for obj in session.query(User):
    print(obj)