django 事务处理

将ATOMIC_REQUESTS该字段设置为true

# 数据库
DATABASES = {
    'default': {
        'ATOMIC_REQUESTS': True,
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '',
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '3306'
    },
}

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

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

from django.db import transaction

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

猜你喜欢

转载自blog.csdn.net/lxq_9532/article/details/85052866