django中数据库事务的处理

时间:2021-07-25 03:11:21

今天在django中处理数据库数据时,用到事务,官方文档看不下去,网上查资料,那叫一个大海捞针啊,还找不到自己想要的效果。

django中的事务,

依据Django1.6的文档,“Django提供了一种简单的API去控制数据库的事务交易...原子操作用来定义数据库事务的属性。

原子操作允许我们在数据库保证的前提下,创建一堆代码。如果这些代码被成功的执行,所对应的改变也会提交到数据库中。如果有异常发生,那么操作就会回滚。”
可以采用装饰器用法或代码块用法,强力推荐代码块,如下。

from django.db import transaction
def index(request):
    try:
        with transaction.atomic():
            work2()
    except Exception:
        pass

放到 try 里如果没有异常事务自动提交,有异常自动回滚