可能这是一个非常愚蠢的问题,但是我正在研究的部分非常重要,因此我想再次检查一下内容
从Django documentation引述有关blur
原子性是数据库事务的定义属性。原子 允许我们创建一个代码块,其中的原子性 数据库是有保证的。如果代码块成功 完成后,更改将提交到数据库。如果有 例外,更改将回滚。 我的猜测:而且以下代码将不会执行,因为引发了常规python异常,对吧?
例如:
with transaction.atomic():
如果def my_view(request):
with transaction.atomic():
# bunch of queries
api_call()
return JsonResponse('Done')
块内发生数据库异常,是否可以保证不会执行api_call()
?大赞
答案 0 :(得分:1)
是的。这不是特定于Django的:数据库异常是Exception
的一种,如果在Python中引发Exception
(并且未捕获),则后续代码将不会执行。 / p>