gpt4 book ai didi

python - SQLAlchemy/Pyramid DBSession 刷新问题

转载 作者:行者123 更新时间:2023-11-29 03:41:54 25 4
gpt4 key购买 nike

这是我的场景:第一个 View 呈现表单,数据进入第二个 View ,我将其存储在数据库(MySQL)中并重定向到第三个 View ,显示写入数据库的内容:

Stoing to db:
DBSession.add(object)
transaction.commit()

DB Session:
DBSession = scoped_session(sessionmaker(expire_on_commit=False,
autocommit=False,
extension=ZopeTransactionExtension()))

在那之后,当我多次刷新页面时,有时我可以看到数据库发生变化,有时却看不到,一次是旧数据,第二次是新数据,依此类推...当我重新启动服务器(本地,pserve)时,数据库数据是最新的。

也许是创建 session 的问题?

最佳答案

检查 MySQL 的 transaction isolation level .

InnoDB 的默认值是 REPEATABLE READ:“同一事务中的所有一致读取读取由第一次读取建立的快照。”

您可以在调用 create_engine 时指定隔离级别。查看SQLAlchemy docs .

我建议您尝试使用 READ COMMITTED 隔离级别,看看是否能解决您的问题。

关于python - SQLAlchemy/Pyramid DBSession 刷新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12837527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com