假设看官已经了解了什么是事务。私以为这模块了解以下几点用法就好, 余者大多功能重复。
transaction.atomic(using=None, savepoint=True)
这里面atomic方法实际调用class Atomic, 此类有__call__方法实现类实例装饰器, __enter__,__exit__实现with 上下文管理器。
使用方法 @atomic不带参数装饰函数且此时默认使用default数据库, @atomic(‘xx’)带参数且参数为数据库别名装饰函数。
看了下代码, 大致思路就是savepoint存进list, 如果事务中没有异常则list最后加入保存后的点, 无论有没有异常, 结尾都rollback最后的savepoint。
(未完待续)