django ATOMIC_REQUESTS

在数据库配置中,如果配置了此属性为True,如下:

DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.xxx',
            'NAME': '',
            'USER': '',
            'PASSWORD': '',
            'HOST': '',
            'PORT': '',
            'ATOMIC_REQUESTS': True,
        }
    }

则,统一个http请求对应的所有sql都放在一个事务中执行(要么所有都成功,要么所有都失败)。

是全局性的配置, 如果要对某个http请求放水(然后自定义事务),可以用non_atomic_requests修饰器

from django.db import transaction

class xxx(xxxView):
    @transaction.non_atomic_requests
    def post(self, request, *args, **kwargs):
        ...

 

posted @ 2016-05-05 12:16  tommy.yu  阅读(1219)  评论(0编辑  收藏  举报