django - transaction
def user_atomic():
User.objects.create(name='purk1', email='pwu1@maxprocessing.com') User.objects.create(user_id='purk2', name='purk2', email='pwu2@maxprocessing.com') User.objects.create(name='purk3', email='pwu3@maxprocessing.com') @transaction.atomic
def user_atomic_decorator():
User.objects.create(name='purk1', email='pwu1@maxprocessing.com') User.objects.create(user_id='purk2', name='purk2', email='pwu2@maxprocessing.com') User.objects.create(name='purk3', email='pwu3@maxprocessing.com') @transaction.atomic
def user_atomic_decorator_1():
User.objects.create(name='purk1', email='pwu1@maxprocessing.com') try:
with transaction.atomic():
User.objects.create(user_id='purk2', name='purk2', email='pwu2@maxprocessing.com')
except Exception as e:
e
User.objects.create(name='purk3', email='pwu3@maxprocessing.com') @transaction.atomic
def user_atomic_decorator_except():
User.objects.create(name='purk1', email='pwu1@maxprocessing.com')
try:
User.objects.create(user_id='purk2', name='purk2', email='pwu2@maxprocessing.com')
except Exception as e:
e
User.objects.create(name='purk3', email='pwu3@maxprocessing.com')
atomic

user_id 为uuid类型,所以user_id='purk2'肯定会出错,
result:




在atomic中错误的使用try except则会抛出TransactionManagementError的异常,同时transaction失效了,没有正常回滚。
用atomic装饰之后,里面的结果就被回滚了,但是用try except包裹的atomic不会影响外层的transaction回滚
django - transaction的更多相关文章
- Django transaction 误用之后遇到的一个问题与解决方法
今天在调试项目开发好的一个模块的时候,发现了一个很诡异的现象,最后追踪发现是因为在项目中事务处理有误所致.这个问题坑了我好一会,所以记录一下,以免再踩坑.下面开始详述. 我们都知道 Django 框架 ...
- BBS 03day
目录 BBS_03 day: 自定义标签 过滤器: 文章的点赞,点彩功能: 文章的评论功能 transaction用法: 自定义 标签代码展示: BBS_03 day: 自定义标签 过滤器: --&g ...
- 回滚原理 Since database connections are thread-local, this is thread-safe.
mysql django 实践: django @transaction.atomic 机制分析 1.数据库清空表Tab 2.请求django-view @transaction.at ...
- Django Mysql SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED
Django 执行makemigrations 的时候报错: django.db.utils.ProgrammingError: (1064, "You have an error in ...
- django 事务错误 -- Transaction managed block ended with pending COMMIT/ROLLBACK
Request Method: GET Request URL: http://192.168.128.111:8000/×××/××××/ Django Version: 1.4.8 Excepti ...
- Django中的事务(Transaction)管理
Django默认的事务行为 默认情况下,在Django中事务是自动提交的.当我们运行Django内置的模板修改函数时,例如调用model.save()或model.delete()时,事务将被立即提交 ...
- Django深入----django.db.transaction
django 的事务: transaction.py atomic---原子性 def atomic(using=None, savepoint=True): # Bare decorator: @a ...
- Python Django,事务,transaction.atomic,事务保存点
from django.shortcuts import renderfrom django.http import HttpResponsefrom django.views.generic imp ...
- django.db中的transaction
transaction.set_autocommit(0) ..... ........ ................ transaction.commit() 可以使夹在其两句中间的所有SQL语 ...
随机推荐
- iOS 画图讲解
5.画图 (1)画线 //绘图代码写在drawRect里,view加载完成,需要显示的时候调用 //1.获取图形上下文 2.创建路径 3.把图形放入上下文 4.渲染上下文 //drawRect的rec ...
- Linux常用命令之sed
标题:sed命令的使用 作用:sed(stream editer)是以行为单位处理文本数据,可以对数据按行进行选取(显示打印).替换.删除和新增等功能. 工作流程:sed是一个流编辑器,它可以对从标准 ...
- (ASP.Net)MVC4怎么设置@Html.TextBoxFor样式
添加自定义样式和属性: @Html.TextBoxFor(s=>s.dd,new {@class="main",@style="width: 100px;" ...
- Linux 字符设备控制技术
字符设备控制技术 一.字符设备控制理论 1.作用 大部分设备除了具有<读写设备>的能力,还应该有<控制设备>的能力.比如改变 波特率 2. 应用程序接口 在用户空间中使用 Io ...
- CentOS 7 minimal 版本安装后网络配置
本博文主要为你讲解如何再CentOS 7中启用网络. 1.首先使用root登录服务器,输入 nmcli d 我们发现网卡是处于禁用状态. 2.打开网络管理器界面,再终端输入 nmtui 打开界面如上, ...
- Varnish缓存服务器的搭建配置手册
Varnish缓存服务器的搭建配置手册 1.Varnish官方环境依赖提示 Installing Varnish Cache is as simple as enabling our package ...
- HDU4268 Alice and Bob(贪心+multiset)
Problem Description Alice and Bob's game never ends. Today, they introduce a new game. In this game, ...
- Sql 求比率 类型 影响 结果
- HTML之正则表达式
匹配国内电话号码:d{3}-d{8}|d{4}-d{7} 评注:匹配形式如 0511-4405222 或 021-87888822 匹配腾讯QQ号:[1-9][0-9]{4,} 评注:腾讯QQ号从10 ...
- Javascript之日历
<meta http-equiv="content-type" content="text/html; charset=utf-8"> <ti ...