SQLAlchemy - 有没有办法查看当前会话中的内容?

时间:2015-08-10 20:27:21

标签: python session flask sqlalchemy

我很好奇是否有办法展示当前会话中的内容?

或许是一种检查会话是否为空的方法,以便我可以执行以下操作。

if db.session:
    db.session.commit()

这种方式只有在会话中的某些内容等待提交时才会提交。

1 个答案:

答案 0 :(得分:11)

检查会话状态有以下属性:

这三个属性可用于检查会话状态:

if not db.session.new and not db.session.dirty and not db.session.deleted:
    # do smth

但即使会话中没有任何更改,也可以安全地呼叫session.commit()。如果您没有做一些特别的事情,则不需要在提交之前显式检查会话状态。

还有一个名为Session._is_clean()的私有方法,用于检查是否有任何更改要刷新到数据库。它是这样实现的:

def _is_clean(self):
    return not self.identity_map.check_modified() and \
        not self._deleted and \
        not self._new
相关问题