当前位置: 首页 > news >正文

python 相关框架事务开启方式

前言

对于框架而言,各式API接口少不了伴随着事务的场景,下面就列举常用框架的事务开启方法

一、Django

import traceback
from django.db import transaction
from django.contrib.auth.models import User
try:with transaction.atomic():  # 在with语句体中,要成功都成功,要失败都失败# User.objects.filter(id=66).update(username="test_username")transaction1transaction2transaction3...# b = 1 / 0
except Exception as e:print(traceback.format_exc())

二、flask-sqlalchemy

注:利用begin_nested方法,会开启一个子事务!实现数据库变更需将子事务提交再将主事务提交才行

2.1、样例模板

db.session.begin_nested()
# obj = Mytable.query.filter_by(id=68).first()
# obj.desc = "test-demo"
transaction1
transaction2
transaction3
.
.
.
# 子事务提交
db.session.commit()
# b = 1 / 0
# 主事务提交
db.session.commit()

2.2、进化版

with db.session.begin_nested():  # 在with语句体(自带子事务提交)中,要成功都成功,要失败都失败# obj = Mytable.query.filter_by(id=88).first()# obj.desc = "test-demo"transaction1transaction2transaction3...# b = 1 / 0
db.session.commit()

结束!

http://www.lryc.cn/news/116875.html

相关文章:

  • vue使用ElementUI
  • Python做一个绘图系统3:从文本文件导入数据并绘图
  • flutter开发实战-获取Widget的大小及位置
  • 软件测试工程师面试如何描述自动化测试是怎么实现的?
  • Qt5兼容使用之前Qt4接口 intersect接口
  • 【云原生】Kubernetes节点亲和性分配 Pod
  • 【Essential C++课后练习】纯代码(更新中)
  • C#仿热血江湖GClass
  • [SQL智慧航行者] - 用户购买商品推荐
  • Idea配置Scala开发环境
  • LT8711UXD 是一款高性能双通道 Type-C/DP1.4 至 HDMI2.0 转换器
  • Android APK体积优化(瘦身)
  • python技术栈 之 单元测试中mock的使用
  • python 提取冒号和逗号内的字符串
  • CentOS安装Postgresql
  • 云原生可观测框架 OpenTelemetry 基础知识(架构/分布式追踪/指标/日志/采样/收集器)...
  • 多用户跨境电商商品库系统快速搭建(全开源)
  • DataGrip 配置 HiveServer2 远程连接访问
  • 异常的使用
  • 软件安全测试包含哪些内容和方法?安全测试报告的必要性
  • 【代码随想录-leetcode第四题 20.有效的括号】
  • 造个轮子-任务调度执行小框架-IOC容器实现
  • npm发包中一些操作备忘
  • 15_基于Flink将pulsar数据写入到ClickHouse
  • Pycharm如何打断点进行调试?
  • 微服务02-docker
  • CSS:盒子模型 与 多种横向布局方法
  • 用node.js搭建一个视频推流服务
  • 【SpringCloud】Feign远程调用
  • 集合Collection-List-ArrayList学习