我正在使用SqlAlchemy-1.0.9和python 2.7。
因此,当我尝试将对象添加到会话时,什么也没有发生,因此数据没有插入数据库中。我正在使用mysql和oursql。
下面的一些代码:
首先,我创建一个函数来创建“创建引擎”等...,并且每次要创建会话时都使用它。
base = declarative_base()
engine = create_engine('mysql+oursql://root:[email protected]/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()
时,您都在创建一个新会话。该代码看起来就像您在一个会话中创建实体并提交另一个会话。