博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django事务
阅读量:5846 次
发布时间:2019-06-18

本文共 1008 字,大约阅读时间需要 3 分钟。

有时数据的更新修改涉及到多张表的更改,但因为某一环节的出错导致关联数据不能同时更新,为了避免这种问题的出现,可以使用事物(transaction)来解决

Models:

from django.db import modelsclass UserInfo(models.Model):    username = models.CharField(max_length=32)    email = models.EmailField(max_length=64)class Dept(models.Model):    title = models.CharField(max_length=32)

Urls:

from django.conf.urls import urlfrom app01 import viewsurlpatterns = [    url(r'^test/$', views.test),]

Views:

from django.shortcuts import render, HttpResponsefrom . import modelsdef test(request):    try:        from django.db import transaction  # 导入事务        with transaction.atomic():            user_obj = models.UserInfo.objects.create(username='Lena', email='example@live.com')            dept_obj = models.Dept.objects.create(title='IT')    except Exception as e:        return HttpResponse('error happened, db rollback')    return HttpResponse('OK')

事务的应用需要数据库引擎的支持——Innodb

user_obj和dept_obj的创建需要同时完成,其中一个操作行为的出错都不会实现user_obj和dept_obj的创建

转载于:https://www.cnblogs.com/c491873412/p/7688472.html

你可能感兴趣的文章
虚荣和骄傲会让你跌得很惨
查看>>
Swift学习资料汇总
查看>>
SQLServer分页
查看>>
rabbitmq学习
查看>>
Cobbler 快速入门指南(翻译)
查看>>
mac 10.14 编辑crontab
查看>>
IOS MD5加密字符串
查看>>
java 实现WebService 以及不同的调用方式
查看>>
REST和SOAP Web Service的比较(写得非常清晰易懂,转载于此)
查看>>
怎么面试架构师
查看>>
JAVA中循环删除list中元素的方法总结
查看>>
使用xhprof出现502错误的解决方法
查看>>
微信公众号支付总结
查看>>
【翻译】ios教程-创建静态库
查看>>
小黑小波比.JSformat和JSHint
查看>>
如何以不同的方式读取文件!
查看>>
视觉差
查看>>
spring+hibernate+jbpm整合
查看>>
思达报表工具Style Report基础教程—用组合框进行数据过滤
查看>>
一个老程序员的建议
查看>>