FlaskSQLAlchemy没有找到更改的记录

2024-05-14 03:28:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Flask SQLAlchemy中看到一些意想不到的行为,我不明白发生了什么:

如果我使用MySQL Workbench或Sequel Pro对记录进行了更改,那么运行应用程序(无论是在Apache上的WSGI下运行,还是从命令行运行)不会接收到更改。如果我通过触摸WSGI文件或重新加载(命令行)来重新加载应用程序,我可以看到更改的记录。我通过在交互式shell中运行一个all()查询验证了这一点,并且它是相同的——在我退出shell并重新启动之前没有任何变化。我觉得我遗漏了一些非常明显的东西——只有一个表,没有连接等等——运行MySQL5.5.19,在2.7.3上运行SQLA0.7.7


Tags: 文件命令行应用程序flaskwsgisqlalchemyapache记录
1条回答
网友
1楼 · 发布于 2024-05-14 03:28:53

你的应用程序的SELECT可能在它自己的事务/会话中,所以由另一个会话(例如MySQL Workbench连接)提交的更改对你的SELECT是不可见的。您可以通过启用mysql常规日志或在create_engine(…)定义中设置“echo:false”来轻松验证它。很可能您正在setautocommit=0模式下启动SQLAlchemy会话,这需要显式的提交或回滚(当您重新启动/重新加载时,Flask SQLAlchemy会自动为您完成)。尝试在autocommit=true模式下启动会话,或者在调用SELECT之前坚持显式提交/回滚。在

相关问题 更多 >