Django中的原子事务相关注意事项

原创 2015年11月20日 19:46:50

       Django中的原子事务支持(transaction.atomic)方式函数装饰器或者with语句,这种方式特别是前者和Spring里面的AOP事务支持方式基本等同,当然其实质方式都是原始的try..catch方式,真是因为这个真正的原始方式,写这种外套事务支持的业务代码时需要注意一些问题:

      1、外加事务支持的业务代码内部就不要做泛型的try catch异常捕捉,这样会导致,真正的事务支持接不到异常,导致可能所需的事务回滚不会执行。

      2、外加事务支持的业务代码内部的逻辑控制不能对数据库操作有影响,比如Django中的form验证,如果双数据库操作外都有不同的Form验证,那么最好在外部同时做完两个Form验证,然后在内部再用with语句加原子事务支持,否则话,第二次数据库操作可能会由于其相关的form验证失败,而不执行数据库操作,这种纯粹没有任何异常,当然也不会对第一个操作的回滚起任何影响,所以表单验证和数据库提交需要分别的集中化,当然最主要的是不同的数据库操作最好集中执行,而这些操作所需的业务逻辑代码最好在第一个数据库操作之前全部执行准备完。

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Django原子性更新数据库——数据库表中属性的自增/自减操作

本文翻译自Django官方文档点击打开链接 如何根据数据库中存在值更新Model中属性(自增操作)? 有时我们需要根据当前数据库中的已存在属性,经过一些简单的数学运算后,来更新它。例如下面...

Django 数据库事务

管理数据库事务Django框架提供了好几种方式来控制和管理数据库事务。(以下Django框架会简化为Django,读者可自行脑补框架两字)Django框架默认的事务行为自动提交作为Django默认的事...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

scanf 和printf 的相关注意事项

我们编程写代码的时候有时会遇到这样一个问题: 编程如下: #include int main() { int num; char ch; prin...

Django中使用ifram注意事项

因为在django中无法识别我们普通的url格式,比如使用,这种格式django无法识别的,所以运行时就会出现异常 目录结构: 解决办法: 1、将所有要跳转到的页面进行注册 2、在view.py中...

抓取mtklog的相关注意事项

一份完整的mtklog中一共包含以下几个部分: aee_exp/config/mdlog/mobilelog/taglog/netlog 其中,拷贝至电脑前请务必先确认手机中有如上文件夹且...

中国对联几点禁忌~

       PS : 学好对联有以下几点需要注意的地方           一忌合掌二忌重,三忌失对欠平衡。 第四失替应留意,五为乱脚六孤平...

Hibernate的事务注意事项

最近做的项目有一个很麻烦的业务,一个操作里包含了insert,update,delete,select动作。 一开始起在一个hibernate事务里,发现在入库的时候有的时候数据对不上,后来查了下资...

flex 学习注意事项

总结的挺好的,对学习flex很有帮助! 1、自定义控件加载。 flex3中自定义控件,加载时直接定义xmlnx:**即可使用。在flex4中,自定义控件,需要加在中,如:       ...

log4j使用注意事项

log4j使用注意事项

nginx 之 注意事项

1。识别 X-Forwarded- style headers: nginx 设置的X-Forwarded- 格式的header,如 X-Forwarded-Proto,若要让被代理的web服务...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)