python - SQLAlchemy - 有没有办法查看当前 session 中的内容?

标签 python session flask sqlalchemy

我很好奇是否有办法显示当前 session 中的内容?

或者也许是一种检查 session 是否为空的方法,以便我可以执行如下所示的操作。

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

这样它只会在 session 中确实有东西等待提交时才提交。

最佳答案

有以下属性可以检查 session 状态:

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

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

然而,即使 session 没有变化,调用 session.commit() 也是安全的。如果您不做一些特别的事情,则不需要在提交之前显式检查 session 状态。


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

def _is_clean(self):
    return not self.identity_map.check_modified() and \
        not self._deleted and \
        not self._new

关于python - SQLAlchemy - 有没有办法查看当前 session 中的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31928520/

相关文章:

python - 在 Flask 应用程序中使用 Alembic 和 Flask-SQLAlchemy 检测对 models.py 的更改

php - 是否可以在客户端更改 $_SESSION 变量?

azure - 将 Python 日志记录设置为 Azure Blob,但在那里找不到日志文件

session - 使用 ajax 请求保持 session 事件是否安全?

python - 如何限制 Flask 中的事件登录数

python - 获取 flask 中最后插入的 id 时出现问题

Python ctypes 位域 : get bitfield location

python - 如何使用 sudo 权限在 Node.js 中执行 Python 脚本

python - 如何在 Python 中创建迭代器管道?

session - 默认 session 过期超时?