from functools import wraps
from django.db import transaction
def my_transaction(func):
@wraps(func)
def wrap(*args, **kwargs):
# 开启事务
try:
with transaction.atomic():
save_point = transaction.savepoint()
func(*args, **kwargs)
# 提交事务 参数是上面定义的保存点
transaction.savepoint_commit(save_point)
except Exception as e:
transaction.savepoint_rollback(save_point)
return my_transaction
return wrap
1.将my_transaction导入到view。之后在请求函数上进行装饰 @my_transaction
本文介绍了一个使用Python和Django实现的事务管理装饰器。该装饰器利用了Django的transaction模块来确保数据库操作的原子性。通过示例代码展示了如何在函数调用前后开启和提交或回滚事务。
128

被折叠的 条评论
为什么被折叠?



