0
点赞
收藏
分享

微信扫一扫

django 之ORM事务开启和回滚

双井暮色 2022-07-18 阅读 63


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

1、装饰器方法:                                                                                                           

from django.db import transaction

@transaction.atomic
def viewfunc(request):
# 这些代码会在一个事务中执行
...

2、with 语句:                                                                                                        

from django.db import transaction

def viewfunc(request):
# 这部分代码不在事务中,会被Django自动提交
...

with transaction.atomic():
# 这部分代码会在事务中执行
    # 创建回滚点
    save_id = transaction.savepoint()
    #一旦异常,则回滚代码
    transaction.savepoint_rollback(save_id)
...

 

举报

相关推荐

0 条评论