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语 ...
随机推荐
- 6. Android框架和工具之 JSON解析
Android进阶笔记17:3种JSON解析工具(org.json.fastjson.gson)
- 【Mood-20】滴滤咖啡做法 IT工程师加班必备 更健康的coffee 项目经理加班密鉴
Drip Coffee
- 【Shell脚本学习15】shell printf命令:格式化输出语句
printf 命令用于格式化输出, 是echo命令的增强版.它是C语言printf()库函数的一个有限的变形,并且在语法上有些不同. 注意:printf 由 POSIX 标准所定义,移植性要比 ech ...
- Java异常的一个小知识
有以下两个代码: package com.lk.A; public class Test3 { public static void main(String[] args) { try { int a ...
- mysql数据类型分析
CHAR, VARCHAR, TEXT CHAR 定长字符串,占用空间大,速度快 VARCHAR 变长字符串,占用空间小,速度慢 CHAR后面的空格会被去掉,VARCHAR不会去掉 TEXT 不能有默 ...
- mysql简单介绍
SQL语言分为三个部分:数据定义语言( Data DefinitionLanguage,简称为DDL).数据操作语言( DataManipulation Language,简称为DML)和数据控制语言 ...
- MySQL之连接数据库的两种方法
方法一: package DB; import java.sql.Connection; import java.sql.DriverManager; public class Conn { // 定 ...
- dataset 和DataTable的用法
以下包含了这两种不同属性的用法: foreach (DataRow dr in dataset.Tables[0].Rows) { if (i != 0 && l ...
- 8款超酷而实用的CSS3按钮动画
1.CSS3分享按钮动画特效 这是一款基于CSS3的社会化分享按钮,按钮非常简单,提供了分享到twitter.facebook.youtube等大型社交网站.每一个分享按钮都有个大社交网站的Logo图 ...
- 3D球状标签云(兼容IE8)
看见一个很有趣的标签云,3D球状,兼容 IE 8,亲测可用!其他版本没有测试.觉得挺有意思就拿来记录下来,学习学习,本文下方会放出我看的文章地址,先看一下效果: 接下来是代码,html + css + ...