当SQLAlchemy将记录提交到数据库时?

时间:2015-01-14 04:10:20

标签: python session sqlalchemy

我在工作中使用SQLAlchemy,代码如下:

with session.begin(subtransactions=True):
    order = Order(**data)
    session.add(order)

session.close()

执行代码时,MySQL中没有任何新记录。如果我将代码更改为:

with session.begin(subtransactions=True):
    order = Order(**data)
    session.add(order)

session.commit()
session.close()

将插入新记录。

我认为记录是由SQLAlchemy缓存的,但为什么我关闭会话并且会话不会将所有数据刷新到数据库中?

即使我使用session.commit()语句with,我也想知道我是否应session.begin()明确地说明。因为我读了SQLAlchemy并且发现我是否使用with语句,如果没有异常引发或者回滚,如果引发异常,它应该提交我的所有数据。

0 个答案:

没有答案