Django中mysql使用事务以及批量插入数据
使用事务可以有效的防止插入数据时出现错误影响数据的完整性,再出现错误的时候可以回滚事务,做到要么全部插入成功要么全部都不插入
from django.views import Viewfrom main import modelsfrom django.db import transactionimport jsonclass BillTypeAdd(View): ''' 新增账单类别api ''' @transaction.atomic # 事务修饰器 def post(self, request): status = False data = request.POST.get('data') # 用于事务保存 savePoint = None try: data = json.loads(data) # 用于存储实例对象 BillTypeModels = [] for item in data: item.pop('id') BillTypeModels.append(models.BillType(**item)) savePoint = transaction.savepoint() # 事务保存点 models.BillType.objects.bulk_create(BillTypeModels) status = True except Exception as error: if savePoint: # 回滚事务 transaction.rollback(savePoint) status = error.__str__() return HttpResponse(status)
几处重点需要注意
导包,from django.db import transaction事务的保存点,savePoint = transaction.savepoint()回滚事务,transaction.rollback(savePoint)批量插入,bulk_create。批量插入需要提供的数据为models的实例声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。