[英]Session.add() does not work on SqlAlchemy(Python2.7)
我正在使用SqlAlchemy-1.0.9和python 2.7。
因此,当我尝试向会话中添加对象时,什么也没有发生,因此数据没有插入数据库中。 我正在使用mysql和oursql。
下面的一些代码:
首先,我创建一个函数来创建“创建引擎”等...,并且每次我要创建会话时都使用它。
base = declarative_base()
engine = create_engine('mysql+oursql://root:toor@127.0.0.1/pandora', echo=True)
def sessionLoader():
base.metadata.bind = engine
DBSession = sessionmaker(bind=engine)
session = DBSession()
return session
之后,在我的类中,我调用sessionLoader()方法:
我创建对象,依此类推,然后使用add()方法:
newEntity = Entity(name = 'John')
sessionLoader().add(newEntity)
sessionLoader().commit()
之后,控制台上不会显示任何错误或异常。 但是,当我转到数据库并进行一些选择时,那里没有数据。
为了进行测试,我输入了以下代码:
print newEntity in sessionLoader()
它在控制台上显示“ False”。
因此,“ add()”未做应做的工作。
有任何提示或帮助吗?
每次调用sessionLoader()
您都在创建一个新会话。 该代码看起来就像您在一个会话中创建实体并提交另一个会话。
完成更改后,它变为:
这样就变成了:
session = sessionLoader()
newEntity = Entity(name = 'John')
session.add(newEntity)
session.commit()
现在可以了!!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.