Django中mysql使用事务以及批量插入数据
使用事务可以有效的防止插入数据时出现错误影响数据的完整性,再出现错误的时候可以回滚事务,做到要么全部插入成功要么全部都不插入
成都创新互联基于成都重庆香港及美国等地区分布式IDC机房数据中心构建的电信大带宽,联通大带宽,移动大带宽,多线BGP大带宽租用,是为众多客户提供专业服务器托管报价,主机托管价格性价比高,为金融证券行业成都移动机房,ai人工智能服务器托管提供bgp线路100M独享,G口带宽及机柜租用的专业成都idc公司。
from django.views import View
from main import models
from django.db import transaction
import json
class 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的实例
本文标题:Django中mysql使用事务以及批量插入数据
转载来于:http://myzitong.com/article/iggois.html