我正在使用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()时,您都在创建一个新会话。该代码看起来就像您在一个会话中创建实体并提交另一个会话。

10-07 23:36