使用ORM新增数据在Mysql中的操作步骤


Posted in MySQL onJuly 26, 2021

【ORM操作步骤】

  • 构造ORM模型对象
  • 添加到session
  • 提交到数据库
  • 出现异常,回滚事务(可选)

【构造ORM模型对象】

user_obj = User(
username="use1",
password="123456",
real_name = "用户1",
age=12
)

【添加到session】

#  添加1个对象
session.add(user_obj)

#  添加多个对象
session.add_all([user1,user2,user3])

【session的作用】

  • 建立与数据库之间的会话
  • 使用session对数据库中的数据进行增删改查
  • 使用session进行事务控制(提交和回滚)
  • 使用完后需要关闭它  session.close()

【session的创建】

有两种方法,下图代码示例

# 方法一 实例化session
from sqlalchemy.orm import Session

with Session(engine) as session:
    session.add(User())
    session.commit()

#  方法二 使用工厂函数创建
from sqlalchemy.orm import sessionmaker

Session = sessionmaker(engine)

with Session.begin()  as session:
    session.add(User())

【数据提交到数据库】

with Session(engine) as  session:
    session.add(user_obj)
    session.add_all([user1,user1,user1])
    session.commit()

【出现异常,回滚事务】

with Session(engine) as session:
    session.begin()
    try:
        session.add(user1)
        session.add(user2)
    except:
        session.rollback()
        raise
    else:
        session.commit()

【Session对象中其他的常用方法】

1. excute(statement, params=None,*args) 执行SQL查询

2. delete(instance) 物理删除数据

3. get(entity,idnet,*args) 根据主键返回满足条件的ORM对象/None

4. query(*entities,**kwargs)

使用ORM查询,返回Query对象

到此这篇关于使用ORM新增数据在Mysql中的文章就介绍到这了,更多相关ORM mysql数据库内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
MySQL 可扩展设计的基本原则
May 14 MySQL
MySQL注入基础练习
May 30 MySQL
python中的mysql数据库LIKE操作符详解
Jul 01 MySQL
MySQL系列之十 MySQL事务隔离实现并发控制
Jul 02 MySQL
MySQL配置主从服务器(一主多从)
Aug 07 MySQL
一篇文章看懂MySQL主从复制与读写分离
Nov 07 MySQL
MySQL实现配置主从复制项目实践
Mar 31 MySQL
排查并解决MySQL生产库内存使用率高的报警
Apr 11 MySQL
深入理解mysql事务隔离级别和存储引擎
Apr 12 MySQL
WINDOWS下安装mysql 8.x 的方法图文教程
Apr 19 MySQL
mysql中如何用命令创建联合唯一索引
Apr 20 MySQL
MySQL中dd::columns表结构转table过程及应用详解
Sep 23 MySQL
mysql脏页是什么
Jul 26 #MySQL
为什么MySQL分页用limit会越来越慢
Jul 25 #MySQL
MySQL深度分页(千万级数据量如何快速分页)
ORM模型框架操作mysql数据库的方法
mysql 直接拷贝data 目录下文件还原数据的实现
MySQL索引是啥?不懂就问
MySQL 四种连接和多表查询详解
You might like
杏林同学录(六)
2006/10/09 PHP
php5.5中类级别的常量使用介绍
2013/10/02 PHP
浅谈PDO的rowCount函数
2015/06/18 PHP
什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释
2015/07/01 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
2017/08/25 PHP
父窗口获取弹出子窗口文本框的值
2006/06/27 Javascript
对联广告js flash激活
2006/10/19 Javascript
细品javascript 寻址,闭包,对象模型和相关问题
2009/04/27 Javascript
把html页面的部分内容保存成新的html文件的jquery代码
2009/11/12 Javascript
js日期时间补零的小例子
2013/03/05 Javascript
jquery ajax post提交数据乱码
2013/11/05 Javascript
JavaScript中使用concat()方法拼接字符串的教程
2015/06/06 Javascript
JSONP和批量操作功能的实现方法
2016/08/21 Javascript
js实现非常棒的弹出div
2016/10/06 Javascript
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
vue iview组件表格 render函数的使用方法详解
2018/03/15 Javascript
详解nodejs通过响应回写的方式渲染页面资源
2018/04/07 NodeJs
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
python画图把时间作为横坐标的方法
2019/07/07 Python
python 实现12bit灰度图像映射到8bit显示的方法
2019/07/08 Python
Python CategoricalDtype自定义排序实现原理解析
2020/09/11 Python
Python Selenium XPath根据文本内容查找元素的方法
2020/12/07 Python
HTML5之SVG 2D入门3—文本与图像及渲染文本介绍
2013/01/30 HTML / CSS
英国门把手公司:Door Handle Company
2019/05/12 全球购物
大学生暑期实践感言
2014/02/26 职场文书
校园活动宣传方案
2014/03/28 职场文书
关于环保的活动方案
2014/08/25 职场文书
车辆年审委托书范本
2014/09/18 职场文书
领导党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2015毕业生简历自我评价
2015/03/02 职场文书
只需要12页,掌握撰写一流商业计划书的技巧
2019/05/07 职场文书
一篇文章弄懂MySQL查询语句的执行过程
2021/05/07 MySQL
php7中停止php-fpm服务的方法详解
2021/05/09 PHP
redis三种高可用方式部署的实现
2021/05/11 Redis
MySQL安装失败的原因及解决步骤
2022/06/14 MySQL