我正在对一些Python/Django应用程序中的旧代码进行重构,寻求关于在SQL数据库上执行操作的样式/最佳实践建议。
目前我正在尝试重新编写以下代码:
def fun():
try:
with transaction.atomic():
# query DB
# do business logic
# update DB entries with new values
except:
# handle exception
事情是这样的,在我的查询和更新之间有相当数量的业务逻辑。但我觉得在事务中定义为另一个缩进/即额外代码似乎不合理。理想情况下,我希望清理一下,并仅作为原子性执行某些操作。我想这实际上并没有减少代码行数,但我很好奇
transaction.atomic()
到底完成了什么任务?根据我对原子性的理解,读操作并不会实际影响数据存储器的状态,所以我不确定最初的读操作是否应该放在
atomic()
下面。提前致谢。