Session.add() 不适用于 SqlAlchemy(Python2.7)

Pyt*_*ian 0 python mysql sqlalchemy addition

我正在使用 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
Run Code Online (Sandbox Code Playgroud)

之后,在我的类中,我调用 sessionLoader() 方法:

我创建对象等,然后使用 add() 方法:

newEntity = Entity(name = 'John')

sessionLoader().add(newEntity)

sessionLoader().commit()
Run Code Online (Sandbox Code Playgroud)

之后控制台上不再显示任何错误或异常。但是当我进入数据库并进行一些选择时,那里没有数据。

为了进行测试,我输入了以下代码:

print newEntity in sessionLoader()
Run Code Online (Sandbox Code Playgroud)

它在控制台上显示“False”。

所以'add()'没有做它应该做的工作。

有什么建议或帮助吗?

Jer*_*ony 5

每次您致电时,sessionLoader()您都会创建一个新会话。该代码看起来像是您在一个会话中创建实体并提交另一个会话。