django使用mysql事务处理_Django处理事务:transaction

有些时候我们需要对数据库进行一连串的操作,如果其中某一个操作失败,那么其他的操作也要跟着回滚到操作以前的状态。

举个例子。某天你到银行存了 100 块钱,所以你的账户的数据库表就应该减去 100 块,而银行的账户上增加 100 块。但如果数据库在执行银行账户增加 100 块时操作失败了,岂不是平白无故损失掉 100 块钱,那你不得把银行屋顶给拆了。

这种情况下就需要用到事务这个概念了,即把一组操作捆绑到一起,大家生死与共,要么都成功,要么都失败,结成人民统一战线。

Django 里如何实现事务?看下面的例子:

# models.py

from django.db import models

class Student(models.Model):

"""学生"""

name = models.CharField(max_length=20)

class Info(models.Model):

"""学生的基本情况"""

age = models.IntegerField()

class Address(models.Model):

"""学生的家庭住址"""

home = models.CharField(max_length=100)

有三个模型,Student 为学生、Info 为学生的基本情况、Address 为学生的住址。假设这三个模型必须同时创建,否则数据就是不完整的。

我们可以这样写视图:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值