在使用django开发web项目时,当测试时,会出现一些错误,导致数据库会把一些没有出错的东西存进去了,而出错的没有记录,这样就造成了数据不完整。
所以在今后的开发过程中,要经常使用transaction 来保证每一次数据库操作要么成功,要么就不要添加(即出现错误,就回滚)
以下是代码实例:
from django.db import transaction #导入模块
with transaction.atomic(): #使用with,这样在with下面的代码如果发生错误
user = User() # 将自动回滚之前的操作(with内的操作)
user.name = "pzy"
user.age = 20
user.save()
#以下是与try except合用
try :
with transaction.atomic(): #使用with,这样在with下面的代码如果发生错误
user = User() # 将自动回滚之前的操作(with内的操作)
user.name = "pzy"
user.age = 20
user.save()
except Exception as e: #照样使用except捕捉信息
print("出现错误<%s>"%str(e))
以上纯属个人使用经验,在代码使用方面并不是很严谨科学,不喜勿喷!
转载请注明来处