Django事务transaction的使用以及多个装饰器问题

 更新时间:2023年08月24日 14:35:15   作者:Lei Gong  
这篇文章主要介绍了Django事务transaction的使用以及多个装饰器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Django事务transaction使用及多个装饰器

django事务类库:django.db.transaction

atomic提供装饰器用法当有多个装饰器时@transaction.atomic必须紧贴函数,如果其他装饰器紧贴函数虽不会报错但函数执行会出现问题

例:

#正确用法
from django.db import transaction
@classmethod
@transaction.atomic
def func(request):
 ......
#错误用法
from django.db import transaction
@transaction.atomic
@classmethod
def func(request):
 ......

atomic提供两种方案实现事务

1、装饰器用法:

from django.db import transaction
@transaction.atomic
def func(request):
  # 这些代码会在一个事务中执行
  ......

装饰器用法:

  • 整个视图中所有 MySQL 数据库的操作都看做一个事务,范围太大,不够灵活。
  • 而且无法直接作用于类视图

2、with 语句用法:

from django.db import transaction
def func(request):
  # 这部分代码不在事务中,会被 Django 自动提交
  ......
  with transaction.atomic():
      # 这部分代码会在事务中执行
      ......

with 语句用法:

  • 可以灵活的有选择性的把某些 MySQL 数据库的操作看做一个事务。
  • 而且不用关心视图的类型。

Django事务transaction.atomic

自定义事务处理

方法一:全局配置对一整个http请求内数据库操作进行事务管理

方法二:atomic 装饰器对整个view进行事务管理

方法三:atomic 对代码块进行事务管理

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python贪婪匹配以及多行匹配的实例讲解

    python贪婪匹配以及多行匹配的实例讲解

    下面小编就为大家分享一篇python贪婪匹配以及多行匹配的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python中kmeans聚类实现代码

    python中kmeans聚类实现代码

    这篇文章主要为大家详细介绍了python中kmeans聚类的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • python 实现图片上传接口开发 并生成可以访问的图片url

    python 实现图片上传接口开发 并生成可以访问的图片url

    今天小编就为大家分享一篇python 实现图片上传接口开发 并生成可以访问的图片url,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python项目中requirements.txt的用法实例教程

    python项目中requirements.txt的用法实例教程

    Python项目中必须包含一个requirements.txt文件,用于记录所有依赖包及其精确的版本号,以便新环境部署,下面这篇文章主要给大家介绍了关于python项目中requirements.txt用法的相关资料,需要的朋友可以参考下
    2022-06-06
  • Python中强大的函数map filter reduce使用详解

    Python中强大的函数map filter reduce使用详解

    Python是一门功能丰富的编程语言,提供了许多内置函数,以简化各种编程任务,在Python中,map(),filter()和reduce()是一组非常有用的函数,它们允许对可迭代对象进行操作,从而实现数据转换、筛选和累积等操作,本文将详细介绍这三个函数,包括它们的基本用法和示例代码
    2023-11-11
  • 利用Python制作本地Excel的查询与生成的程序问题

    利用Python制作本地Excel的查询与生成的程序问题

    最近遇到这样一个项目需求制作一个程序有一个简单的查询入口实现Excel的查询与生成,今天教大家利用Python制作本地Excel的查询与生成的程序,感兴趣的朋友跟随小编一起看看吧
    2022-06-06
  • Python时间操作之pytz模块使用详解

    Python时间操作之pytz模块使用详解

    在学习Python过程中,我们已经了解了一些关于时间操作的库,如:Python内置库:time,datatime和第三方库:dateutil,pytz等。本文将详细讲讲pytz模块的使用,需要的可以参考一下
    2022-06-06
  • Python单例模式的5种实现方式

    Python单例模式的5种实现方式

    本文主要介绍了Python单例模式的5种实现方式,包括模块级别的全局变量、使用装饰器、使用元类、重写__new__方法以及线程安全的单例实现,感兴趣的可以了解一下
    2025-05-05
  • Python使用JSON库解析JSON数据的方法

    Python使用JSON库解析JSON数据的方法

    这篇文章主要介绍了Python使用JSON库解析JSON数据,主要包括如何在网页中获取json数据及python内置的json库,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • django输出html内容的实例

    django输出html内容的实例

    今天小编就为大家分享一篇django输出html内容的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05

最新评论