web2py 与数据库事务

2 投票
2 回答
1271 浏览
提问于 2025-04-16 11:42

数据库事务到底什么时候被提交?比如说,是在每次生成响应的最后吗?

我来解释一下这个问题:我需要开发一个稍微复杂一点的应用程序,在这个应用中,我需要手动控制数据库事务。特别是,我需要设计一组表单,这些表单背后有一些复杂的逻辑(有点像“向导”),但是数据库的操作必须等到最后一个表单和确认之后才能提交。

当然,我可以把所有内容放在会话中,而不进行任何数据库更改,但这并不是解决办法,因为这些更改相当复杂,确实需要执行。所以唯一的办法就是保持未提交状态。

现在回到问题上:如果我了解web2py是如何工作的,那么我就更容易决定这个框架是否适合我。我是一个Java和PHP程序员,虽然我会Python,但还不太了解web2py……

如果你知道有哪个网页可以解释这个问题,我也会很感激。

谢谢!

2 个回答

0

你有没有看过官方的文档?里面对 提交政策分布式事务 讲得很清楚。

1

你可以在很多地方使用 db.commit() 和 db.rollback() 这两个命令。如果你不使用这两个命令,而你的操作没有出错,那么在给客户端返回结果之前,系统会自动保存你的操作。如果操作出错了,而且你没有特别处理这个错误,系统就会自动撤销之前的操作。

撰写回答