我们可以这样给代码加锁:
models.Book.objects.select_for_update().filter(id=1)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mxshop',
'HOST': '127.0.0.1',
'PORT': '3306',
'USER': 'root',
'PASSWORD': '123',
"ATOMIC_REQUESTS": True, # 全局开启事务,绑定的是http请求响应整个过程当中的sql
}
}
from django.db import transaction
@transaction.atomic
def viewfunc(request):
# This code executes inside a transaction.
do_stuff()
from django.db import transaction
def viewfunc(request):
# This code executes in autocommit mode (Django's default).
do_stuff()
with transaction.atomic(): # 保存点
# This code executes inside a transaction.
do_more_stuff()
do_other_stuff()
原文:https://www.cnblogs.com/shuoliuchina/p/12521567.html