Django1.8中通过装饰器完成事务控制
时间: 2024-03-20 20:42:44 浏览: 115
Django 中文文档 1.8
在Django 1.8中,可以使用装饰器来完成事务控制。Django提供了两个装饰器来控制事务:
1. @transaction.atomic:将一个函数或方法包装在一个事务中。
```python
from django.db import transaction
@transaction.atomic
def my_view(request):
# 在这里执行数据库操作
pass
```
2. @transaction.non_atomic_requests:将一个函数或方法包装在无事务请求中。
```python
from django.db import transaction
@transaction.non_atomic_requests
def my_view(request):
# 在这里执行数据库操作
pass
```
在使用事务控制时,请注意以下几点:
1. 如果在事务中发生异常,则事务将被回滚。
2. 如果在一个事务中嵌套另一个事务,则内部事务将被忽略。
3. 如果在一个非事务函数中调用事务函数,则不会开启新的事务。
阅读全文