发布时间:2022-08-09 文章分类:编程知识 投稿人:赵颖 字号: 默认 | | 超大 打印

django 中的transaction(事务管理)

1.django默认的事务行为。

2.Tying transactions to HTTP requests

在Httprequest请求和相应都为出错的时候 会提交事务。要使用中间件

'django.middleware.transaction.TransactionMiddleware',
这是一个全局的控制。
3.在views中做事务管理
相对于2,第三种能更加细致的控制事务。主要采用装饰器来控制。
django.db.transaction.autocommit

使用 autocommit 装饰器时,会忽略全局事务设置,将某个视图函式转换化 Django 默认的事务提交行为,在在 views的方法里,一旦你调用了 model.save()model.delete(),或是任何其他会写数据库的方法,事务就会被立刻提交。

django.db.transaction.commit_on_success
django.db.transaction.commit_manually