繁体   English   中英

Session.add()在SqlAlchemy(Python2.7)上不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM