加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Django中关于事务的代码编写

发布时间:2020-12-15 17:09:23 所属栏目:大数据 来源:网络整理
导读:Django中对于数据库的事务,默认每执行一句数据库操作,便会自动提交。 在Django中可以通过 django.db.transaction 模块提供的 atomic 来定义一个事务, atomic 提供两种用法 装饰器用法 from django.db import transaction @transaction.atomic def viewfun

Django中对于数据库的事务,默认每执行一句数据库操作,便会自动提交。

在Django中可以通过django.db.transaction模块提供的atomic来定义一个事务,atomic提供两种用法

  • 装饰器用法

    from django.db import transaction
    
    @transaction.atomic
    def viewfunc(request):
        # 这些代码会在一个事务中执行
        ...
    
  • with语句用法

    from django.db import transaction
    
    def viewfunc(request):
        # 这部分代码不在事务中,会被Django自动提交
        ...
    
        with transaction.atomic():
            # 这部分代码会在事务中执行
            ...
    

在Django中,还提供了保存点的支持,可以在事务中创建保存点来记录数据的特定状态,数据库出现错误时,可以恢复到数据保存点的状态

from django.db import transaction

# 创建保存点
save_id = transaction.savepoint()  

# 回滚到保存点
transaction.savepoint_rollback(save_id)

# 提交从保存点到当前状态的所有数据库事务操作
transaction.savepoint_commit(save_id)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读