我使用的是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()
之后,控制台上没有显示任何错误或异常。 但是当我进入DataBase并进行一些选择时,那里没有数据。
为了进行测试,我将下面的代码放在一起:
print newEntity in sessionLoader()
它表示“假”'在控制台上。
所以' add()'没有做它应该做的工作。
任何提示或帮助?
答案 0 :(得分:3)
每次拨打sessionLoader()
时,您都会创建一个新会话。代码看起来就像是在一个会话中创建实体并提交不同的会话。
答案 1 :(得分:0)
我做了更改后变成了:
所以它变成了:
session = sessionLoader()
newEntity = Entity(name = 'John')
session.add(newEntity)
session.commit()
现在有效!!