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 对代码块进行事务管理

总结

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

相关文章

  • pytest自定义命令行参数的实现

    pytest自定义命令行参数的实现

    本文主要介绍了在使用pytest运行测试用例时,通过传递自定义命令行参数来启动mitmdump进程进行抓包,具有一定的参考价值,感兴趣的可以了解一下
    2024-12-12
  • Python中的可视化设计与UI界面实现

    Python中的可视化设计与UI界面实现

    本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示了如何利用这些库来构建功能强大且美观的界面
    2025-01-01
  • python实现跨年烟花动态效果

    python实现跨年烟花动态效果

    这篇文章主要介绍了python实现跨年烟花的动态效果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-01-01
  • Python内建类型int源码学习

    Python内建类型int源码学习

    这篇文章主要为大家介绍了Python内建类型int源码学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Python+Turtle绘制表白比心图案

    Python+Turtle绘制表白比心图案

    这篇文章主要为大家详细介绍了如何运用Python中的turtle库控制函数来绘制表白比心图案,文中的示例代码讲解详细,感兴趣的小伙伴可以尝试一下
    2022-11-11
  • 基于Python实现MUI侧滑菜单a标签跳转

    基于Python实现MUI侧滑菜单a标签跳转

    这篇文章主要介绍了基于Python实现MUI侧滑菜单a标签跳转,mui最接近原生APP体验的高性能前端框架,MUI侧滑常见的场景有下拉刷新,侧滑抽屉,侧滑删除,侧滑返回以及侧滑菜单等等,下面来看看文章内容详细的介绍,需要的朋友可以参考一下
    2021-11-11
  • Python实现拼音转换

    Python实现拼音转换

    拼音转换指的是将汉字转为拼音的过程。本文介绍了Python实现拼音转换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • Python实现获取照片拍摄日期并重命名的方法

    Python实现获取照片拍摄日期并重命名的方法

    这篇文章主要介绍了Python实现获取照片拍摄日期并重命名的方法,涉及Python针对文件属性及文件名相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • Python如何统计函数调用的耗时

    Python如何统计函数调用的耗时

    这篇文章主要为大家详细介绍了如何使用Python实现统计函数调用的耗时,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-04-04
  • python闭包和装饰器你了解吗

    python闭包和装饰器你了解吗

    这篇文章主要为大家详细介绍了Python的闭包和装饰器,何为闭包?何为装饰器?感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-08-08

最新评论