Django:transaction.atomic异常后继续执行代码

时间:2018-09-20 19:31:50

标签: python django database atomic

可能这是一个非常愚蠢的问题,但是我正在研究的部分非常重要,因此我想再次检查一下内容

Django documentation引述有关blur

  

原子性是数据库事务的定义属性。原子   允许我们创建一个代码块,其中的原子性   数据库是有保证的。如果代码块成功   完成后,更改将提交到数据库。如果有   例外,更改将回滚。 我的猜测:而且以下代码将不会执行,因为引发了常规python异常,对吧?

例如:

with transaction.atomic():

如果def my_view(request): with transaction.atomic(): # bunch of queries api_call() return JsonResponse('Done') 块内发生数据库异常,是否可以保证不会执行api_call()?大赞

1 个答案:

答案 0 :(得分:1)

是的。这不是特定于Django的:数据库异常是Exception的一种,如果在Python中引发Exception(并且未捕获),则后续代码将不会执行。 / p>