1 全局开启事务---> 全局开启事务,绑定的是http请求响应整个过程
DATABASES = {
'default': {
#全局开启事务,绑定的是http请求响应整个过程
'ATOMIC_REQUESTS': True,
}
}
from django.db import transaction
# 局部禁用事务
@transaction.non_atomic_requests
def seckill(request):
return HttpResponse('秒杀成功')
2 一个视图函数在一个事物中
# fbv开启
from django.db import transaction
@transaction.atomic
def seckill(request):
return HttpResponse('秒杀成功')
# cbv开启
from django.db import transaction
from rest_framework.views import APIView
class SeckillAPIView(APIView):
@transaction.atomic
def post(self, request):
pass
3 局部使用事务
from django.db import transaction
def seckill(request):
with transaction.atomic():
pass # 都在一个事物中
return HttpResponse('秒杀成功')