在Django中实现数据库的事务操作
在学习MySQL数据库时,MySQL数据库是支持原子操作
的.
什么是数据库的原子操作呢??打个比方,一个消费者在一个商户里刷信用卡消费.
交易正常时,银行在消费者的账户里减去相应的款项,在商户的帐户加上相应的款项.
但是如果银行从消费者的账户里扣完钱之后,还未在商户的帐户里加上相应的款项时.
由于某些原因,系统或者数据库出现异常了,那么此时钱已经从消费者的账户里扣除了,但是商户的账户里却没有加上相应的款项,让会让商户遭受损失.
这种情况下,最好的解决办法就是使用数据库的原子性操作.
如果数据库使用了事务操作,当出现上面的操作异常时,待数据库正常运行后,数据库系统会把先前执行了一半的操作退回到这个操作之前的状态,
这个通常称为数据库的回滚,也即数据库的原子性操作.
Django中,正常的数据库操作应该是原子性操作的.
在Django的ORM
中,想使用事务操作时,要先导入一个Django的内置模块
from django.db import transaction
首先创建一个项目test,项目中有一个应用app01.
项目的model
为:
from django.db import models
class Userinfo(models.Model):
username=models.CharField("用户名",max_length=32)
email=models.EmailField("邮箱",max_length