使用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 EXPLAIN输出列的详细解释
May 12 MySQL
解决Navicat for Mysql连接报错1251的问题(连接失败)
May 27 MySQL
Mysql systemctl start mysqld报错的问题解决
Jun 03 MySQL
为什么代码规范要求SQL语句不要过多的join
Jun 23 MySQL
mysql脏页是什么
Jul 26 MySQL
MySQL悲观锁与乐观锁的实现方案
Nov 02 MySQL
Mysql数据库手动及定时备份步骤
Nov 07 MySQL
一文搞清楚MySQL count(*)、count(1)、count(col)区别
Mar 03 MySQL
mysql 子查询的使用
Apr 28 MySQL
详解Mysql事务并发(脏读、不可重复读、幻读)
Apr 29 MySQL
MySQL数据库表约束讲解
Jun 21 MySQL
MySQL一劳永逸永久支持输入中文的方法实例
Aug 05 MySQL
mysql脏页是什么
Jul 26 #MySQL
为什么MySQL分页用limit会越来越慢
Jul 25 #MySQL
MySQL深度分页(千万级数据量如何快速分页)
ORM模型框架操作mysql数据库的方法
mysql 直接拷贝data 目录下文件还原数据的实现
MySQL索引是啥?不懂就问
MySQL 四种连接和多表查询详解
You might like
joomla内置的表单验证功能使用方法
2010/06/11 PHP
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
2011/10/29 PHP
PHP把数字转成人民币大写的函数分享
2014/06/30 PHP
php.ini中的request_order推荐设置
2015/05/10 PHP
Yii 使用intervention/image拓展实现图像处理功能
2019/06/22 PHP
javascript 写类方式之五
2009/07/05 Javascript
jquery 定位input元素的几种方法小结
2013/07/28 Javascript
利用jQuary实现文字浮动提示效果示例代码
2013/12/26 Javascript
使用JavaScript和C#中获得referer
2014/11/14 Javascript
JS跨域问题详解
2014/11/25 Javascript
使用jQuery实现input数值增量和减量的方法
2015/01/24 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
Javascript+CSS3实现进度条效果
2016/10/28 Javascript
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
Vue.js render方法使用详解
2017/04/05 Javascript
vue.js系列中的vue-fontawesome使用
2018/02/10 Javascript
vue打包的时候自动将px转成rem的操作方法
2018/06/20 Javascript
实例介绍JavaScript中多种组合继承
2019/01/20 Javascript
如何在Angular8.0下使用ngx-translate进行国际化配置
2019/07/24 Javascript
Vue插件之滑动验证码用法详解
2020/04/05 Javascript
[02:30]联想杯DOTA2完美世界全国高校联赛—北京站现场
2015/11/16 DOTA
详解Python给照片换底色(蓝底换红底)
2019/03/22 Python
Python中遍历列表的方法总结
2019/06/27 Python
OpenCV+face++实现实时人脸识别解锁功能
2019/08/28 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
通过代码实例了解Python sys模块
2020/09/14 Python
python爬取微博评论的实例讲解
2021/01/15 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
清除canvas画布内容(点擦除+线擦除)
2020/08/12 HTML / CSS
美国最好的钓鱼、狩猎和划船装备商店:Bass Pro Shops
2018/12/02 全球购物
合作意向书格式及范文
2014/03/31 职场文书
产品售后服务承诺书
2014/05/21 职场文书
上党课的心得体会
2014/09/02 职场文书
护林员个人总结
2015/03/04 职场文书
详解MySQL InnoDB存储引擎的内存管理
2021/04/08 MySQL