使用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 sql_mode修改不生效的原因及解决
May 07 MySQL
Mysql基础知识点汇总
May 26 MySQL
MySQL中的布尔值,怎么存储false或true
Jun 04 MySQL
解决Mysql的left join无效及使用的注意事项说明
Jul 01 MySQL
MySQL一些常用高级SQL语句
Jul 03 MySQL
MySQL 5.7常见数据类型
Jul 15 MySQL
浅谈MySQL表空间回收的正确姿势
Oct 05 MySQL
Mysql存储过程、触发器、事件调度器使用入门指南
Jan 22 MySQL
Mysql外键约束的创建与删除的使用
Mar 03 MySQL
Windows下载并安装MySQL8.0.x 版本的完整教程
Apr 10 MySQL
MySql重置root密码 --skip-grant-tables
Apr 11 MySQL
delete in子查询不走索引问题分析
Jul 07 MySQL
mysql脏页是什么
Jul 26 #MySQL
为什么MySQL分页用limit会越来越慢
Jul 25 #MySQL
MySQL深度分页(千万级数据量如何快速分页)
ORM模型框架操作mysql数据库的方法
mysql 直接拷贝data 目录下文件还原数据的实现
MySQL索引是啥?不懂就问
MySQL 四种连接和多表查询详解
You might like
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
理解PHP中的Session及对Session有效期的控制
2016/01/08 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
2016/12/24 PHP
动态控制Table的js代码
2007/03/07 Javascript
js实现的常用的左侧导航效果
2013/10/17 Javascript
c#+jquery实现获取radio和checkbox的值
2020/09/12 Javascript
nodejs实现的一个简单聊天室功能分享
2014/12/06 NodeJs
jquery中ajax使用error调试错误的方法
2015/02/08 Javascript
JS实现在页面随时自定义背景颜色的方法
2015/02/27 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
2020/12/13 Javascript
JavaScript里 ==与===区别详解
2016/08/16 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
2016/10/31 Javascript
js实现图片360度旋转
2017/01/22 Javascript
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
Vue实现移动端左右滑动效果的方法
2018/11/27 Javascript
使用Vue.js 和Chart.js制作绚丽多彩的图表
2019/06/15 Javascript
ES6 Symbol在对象中的作用实例分析
2020/06/06 Javascript
JS常用跨域方法实现原理解析
2020/12/09 Javascript
python从sqlite读取并显示数据的方法
2015/05/08 Python
Ubuntu下安装PyV8
2016/03/13 Python
Python基础学习之时间转换函数用法详解
2019/06/18 Python
Python 3.6打包成EXE可执行程序的实现
2019/10/18 Python
pycharm运行scrapy过程图解
2019/11/22 Python
pandas中的数据去重处理的实现方法
2020/02/10 Python
Django Model中字段(field)的各种选项说明
2020/05/19 Python
Python不支持 i ++ 语法的原因解析
2020/07/22 Python
如何通过python检查文件是否被占用
2020/12/18 Python
HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题
2020/05/28 HTML / CSS
Saks Fifth Avenue澳洲/亚太地区:萨克斯第五大道精品百货店
2019/06/09 全球购物
什么是虚拟内存?虚拟内存有什么优势?
2016/02/09 面试题
学雷锋月活动总结
2014/04/25 职场文书
自我检讨报告
2015/01/28 职场文书
投诉信格式范文
2015/07/02 职场文书
2019自荐信该如何写呢?
2019/07/05 职场文书
python 解决微分方程的操作(数值解法)
2021/05/26 Python
适合后台管理系统开发的12个前端框架(小结)
2021/06/29 Javascript