首页 > 其他 > 详细

Django中启用事务

时间:2020-05-25 17:49:03      阅读:47      评论:0      收藏:0      [点我收藏+]

启用事务(方式一)

Django create update delete 操作时自行加行级互斥锁(InnoDB引擎)

from django.db import transaction


# 只对这个视图函数启用事务
@transaction.atomic
def atomic1(request):
    # 一堆ORM操作
    pass
    return HttpResponse(‘ok‘)

# CBV
class TestView(View):
    @transaction.atomic
    def post(self, request, *args, **kwargs):
        # 一堆ORM操作
        pass
        return HttpResponse(‘ok‘)

启用事务(方式二)

from django.db import transaction


# 上下文管理器形式加事务
def atomic2(request):
    with transaction.atomic():
        try:
            # 一堆ORM操作
        except Exception:
            pass
    return HttpResponse(‘ok‘)

设置保存点

from django.db import transaction


# 上下文管理器形式加事务
def atomic2(request):
    with transaction.atomic():
        try:
            # 一堆ORM操作1
            
            # 设置事务回滚的标记点
            sid = transation.savepoint()
            # 一堆ORM操作2
            
        except Exception:
            # 回滚到ORM操作1之后
            transation.savepoint_rallback(sid)
    return HttpResponse(‘ok‘)

Django中启用事务

原文:https://www.cnblogs.com/xiasir/p/12958001.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!