使用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 infobright的安装步骤
Apr 07 MySQL
MySQL 数据丢失排查案例
May 08 MySQL
MySql学习笔记之事务隔离级别详解
May 12 MySQL
MySQL EXPLAIN输出列的详细解释
May 12 MySQL
mysql数据库入门第一步之创建表
May 14 MySQL
解决Mysql的left join无效及使用的注意事项说明
Jul 01 MySQL
MySQL系列之七 MySQL存储引擎
Jul 02 MySQL
防止web项目中的SQL注入
Dec 06 MySQL
MySql重置root密码 --skip-grant-tables
Apr 11 MySQL
Mysql将字符串按照指定字符分割的正确方法
May 30 MySQL
MYSQL中文乱码问题的解决方案
Jun 14 MySQL
前端传参数进行Mybatis调用mysql存储过程执行返回值详解
Aug 14 MySQL
mysql脏页是什么
Jul 26 #MySQL
为什么MySQL分页用limit会越来越慢
Jul 25 #MySQL
MySQL深度分页(千万级数据量如何快速分页)
ORM模型框架操作mysql数据库的方法
mysql 直接拷贝data 目录下文件还原数据的实现
MySQL索引是啥?不懂就问
MySQL 四种连接和多表查询详解
You might like
PHP中mb_convert_encoding与iconv函数的深入解析
2013/06/21 PHP
php中如何使对象可以像数组一样进行foreach循环
2013/08/09 PHP
php实现URL加密解密的方法
2016/11/17 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
2019/10/30 PHP
jQuery UI Dialog 创建友好的弹出对话框实现代码
2012/04/12 Javascript
angularJS提交表单(form)
2015/02/09 Javascript
JavaScript显示表单内元素数量的方法
2015/04/02 Javascript
jquery+CSS实现的水平布局多级网页菜单效果
2015/08/24 Javascript
基于javascript实现样式清新图片轮播特效
2016/03/30 Javascript
Bootstrap进度条实现代码解析
2017/03/07 Javascript
在vue中封装可复用的组件方法
2018/03/01 Javascript
微信小程序支付功能 php后台对接完整代码分享
2018/06/12 Javascript
详解ES6 系列之异步处理实战
2018/10/26 Javascript
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
2020/06/06 jQuery
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
Python手机号码归属地查询代码
2016/05/04 Python
Python使用剪切板的方法
2017/06/06 Python
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
Python数据可视化教程之Matplotlib实现各种图表实例
2019/01/13 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
2019/06/21 Python
Python读取Excel数据并生成图表过程解析
2020/06/18 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
Python三维绘图之Matplotlib库的使用方法
2020/09/20 Python
Python+kivy BoxLayout布局示例代码详解
2020/12/28 Python
Banana Republic英国官网:香蕉共和国,GAP集团旗下偏贵族风
2018/04/24 全球购物
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
华为python面试题
2016/05/03 面试题
党的群众路线教育实践活动总结材料
2014/10/30 职场文书
商超业务员岗位职责
2015/02/13 职场文书
4S店客服专员岗位职责
2015/04/07 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
高中数学课堂教学反思
2016/02/18 职场文书
小学科学课教学反思
2016/02/23 职场文书
Python网络编程之ZeroMQ知识总结
2021/04/25 Python
Go标准容器之Ring的使用说明
2021/05/05 Golang