SQLAlchemy对数据进行CRUD操作

构建 session 对象
所有和数据库的 ORM 操作都必须通过一个叫做 session 的会话对象 来实现,通过以下代码来获取会话对象

代码实现

# SQLAlchemy对数据的CRUD
#SQLAlchemy模型映射表结构.
from sqlalchemy import create_engine,Column,Integer,String
from sqlalchemy.orm import declarative_base,sessionmaker# 数据库的变量
HOST = '127.0.0.1'
PORT = 3306
DATA_BASE = 'itbz'
USER = 'root'
PWD = '123456'
DB_URL = f'mysql+pymysql://{USER}:{PWD}@{HOST}:{PORT}/{DATA_BASE}'# 创建引擎
engine = create_engine(DB_URL)
# 创建一个基类
Base = declarative_base()class Person(Base):__tablename__='t_person'id = Column(Integer,primary_key=True,autoincrement=True)name = Column(String(32))age = Column(Integer)country = Column(String(32))# 创建session对象来操作数据
Session = sessionmaker(engine)# 添加一条数据
def create_data_one():with Session() as session:p1=Person(name='sxt',age=6,country='北京')session.add(p1)session.commit()# 添加多条数据
def create_data_many():with Session() as session:p2=Person(name='孔明',age=19,country='北京')p3=Person(name='周瑜',age=18,country='上海')session.add_all([p2,p3])session.commit()# 查询全部数据
def query_data_all():with Session() as session:all_person = session.query(Person).all()for p in all_person:print(f'{p.id}: {p.name} {p.age} {p.country}')# 查询第一条数据
def query_data_first():with Session() as session:p = session.query(Person).first()print(f'{p.id}: {p.name} {p.age} {p.country}')# 根据参数查询数据
def query_data_by_params():with Session() as session:# 查询 如果有一条用first ,多条为all# p = session.query(Person).filter_by(name='周瑜').first()p = session.query(Person).filter(Person.name=='周瑜').first()print(f'{p.id}: {p.name} {p.age} {p.country}')def update_data():with Session() as session:p = session.query(Person).filter(Person.name=='周瑜').first()p.age = 28# 提交事务session.commit()# 删除数据
def delete_data():with  Session() as session:p = session.query(Person).filter(Person.name=='周瑜').first()session.delete(p)session.commit()if __name__=="__main__":# 删除delete_data()# 查询query_data_all()

添加单条数据

 添加多条数据 

 查询全部数据

查询第一条数据

根据参数查询数据

第一种方式:

 第二种方式:

 更新数据

 删除数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/773506.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3动态绑定style

vue3动态绑定style :style"{属性名:变量}"直接引用对象 :style"对象"绑定一个含多个样式的数组 :style"[styleA, styleB]" :style“{属性名:变量}” 变量的赋值可以根据自己的业务做出调整 直接引用对象 :style“对象”…

Spring事务-两种开启事务管理的方式:基于注解的声明式事务管理、基于编程式的事务管理

Spring事务-两种开启事务管理的方式 1、前期准备2、基于注解的声明式事务管理3、基于编程式的事务管理4、声明式事务失效的情况 例子:假设有一个银行转账的业务,其中涉及到从一个账户转钱到另一个账户。在这个业务中,我们需要保证要么两个账户…

客户管理大揭秘!热门盘点:5款CRM工具推荐!

“本期为大家盘点客户管理中常用的5款CRM工具:Zoho CRM、Salesforce、Hubspot、Freshsales、和Pipedrive。” 我们会从产品特点、适用性等方面对每款产品进行全面考量。无论您是想提高客户参与度、自动化销售流程,还是从数据中获得可操作的见解&#xf…

虹科Pico汽车示波器 | 免拆诊断案例 | 2018款东风风神AX7车发动机怠速抖动、加速无力

一、故障现象 一辆2018款东风风神AX7车,搭载10UF01发动机,累计行驶里程约为5.3万km。该车因发动机怠速抖动、加速无力及发动机故障灯异常点亮而进厂维修,维修人员用故障检测仪检测,提示气缸3失火;与其他气缸对调点火线…

企业指标体系的落地与推广:让指标体系真正发挥作用

一、精心策划实施计划,确保项目有序进行 为确保指标体系的顺利落地与推广,我们精心策划了实施计划。首先,我们制定了详细的时间表,明确了项目启动、关键节点和结束时间,确保项目能够按期推进。同时,我们还将…

FPGA亚稳态学习总结

首先是组合逻辑电路考虑的是竞争冒险,冒险会产生毛刺。重点研究如何去毛刺 时序逻辑电路考虑的是时序不满足会产生的亚稳态问题:如何考量时序满不满足呢?根据不同的场景又有不同的说法。 时序分析的两组基本概念 建立时间与保持时间 1.在…

Day49:WEB攻防-文件上传存储安全OSS对象分站解析安全解码还原目录执行

目录 文件-解析方案-目录执行权限&解码还原 目录执行权限 解码还原 文件-存储方案-分站存储&OSS对象 分站存储 OSS对象存储 知识点: 1、文件上传-安全解析方案-目录权限&解码还原 2、文件上传-安全存储方案-分站存储&OSS对象 文件-解析方案-目…

灵途科技助力家电智能创新

从智能家电到个护健康,科技无时无刻不在刷新我们对智慧生活的认知,我们也从未像今天这样近距离贴近智慧生活的朴素本质——传感技术。灵途科技专注光电感知技术,持续为智能家电客户提供成熟的全方位感知解决方案。步入发展第八年,…

Go语言学习Day2:注释与变量

名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1、注释①为什么要写注释?②单行注释…

燃气官网安全运行监测系统-阀井燃气监测仪-旭华智能

近年来,燃气爆炸事故频发,造成了重大人员伤亡和财产损失。这也再次为我们敲响警钟,燃气是我们日常生活中不可或缺的能源,但其潜在的危险性也是不容小觑。因此在重要节点加装燃气阀井气体监测仪,并将数据上传到系统平台…

通过 Docker 实现国产数据库 OpenGauss 开发环境搭建

通过 Docker 实现国产数据库 OpenGauss 开发环境搭建 一 前置准备 2.1 下载镜像 docker pull enmotech/opengauss:5.0.1构建镜像的 Dockerfile,方便后期实现个性化定制: FROM ubuntu:22.04 as builderARG TARGETARCHWORKDIR /warehouseRUN set -eux;…

已解决AmqpChannelClosedException: AMQP通道关闭异常的正确解决方法,亲测有效!!!

已解决AmqpChannelClosedException: AMQP通道关闭异常的正确解决方法,亲测有效!!! 目录 问题分析 报错原因 解决思路 解决方法 总结 博主v:XiaoMing_Java 在使用Spring AMQP与RabbitMQ等消息中间件进行交互时&am…

使用npm仓库的优先级以及.npmrc配置文件的使用

使用npm仓库的优先级以及.npmrc配置文件的使用 概念如何设置 registry(包管理仓库)1. 设置项目配置文件2. 设置用户配置文件3. 设置全局配置文件4. .npmrc文件可以配置的常见选项 概念 npm(Node Package Manager)是一个Node.js的…

008-如何支持各种语言的项目

我们之前看到, AutoCoder 最简化的配置是这样的: source_dir: /tmp/t-py target_file: /home/winubuntu/projects/ByzerRawCopilot/output.txt query: >修改 server.py ,在代码 app FastAPI()后增加 ray 的初始化连接代码。 默认他会只处…

探索Python中的推荐系统:协同过滤

在推荐系统领域,协同过滤是一种经典且有效的方法,它根据用户的历史行为数据或偏好信息,找到与其相似的其他用户或物品,并利用这种相似性来进行个性化推荐。本文将详细介绍协同过滤的原理、实现方式以及如何在Python中应用。 什么…

C语言文件操作(详细)

⽬录 一. 为什么使⽤⽂件? 二. 什么是⽂件? 三. ⼆进制⽂件和⽂本⽂件? 四. ⽂件的打开和关闭 五. ⽂件的顺序读写 六. ⽂件的随机读写 七. ⽂件读取结束的判定 八. ⽂件缓冲区 一. 为什么使⽤⽂件? 如果没有⽂件&#…

kubernetes-k9s一个基于Linux 终端的集群管理工具

效果预览 下载 github 版本 此文档使用的版本是 v0.32.4,下载地址: https://github.com/derailed/k9s/releases/download/v0.32.4/k9s_linux_amd64.rpm 安装 rpm -ivh k9s_linux_amd64.rpm使用 启动 终端直接执行命令 k9s k9s基本操作 1 选择目…

“选项按钮”的妙用

背景:是否厌倦了下拉菜单?现在可以使用更好玩的选项按钮了。 操作:点击“开发工具”,插入“选项按钮”的窗体控件。 插入一个选项按钮以后,右键“设置控件格式”,设定单元格链接,比如说本次设定…

数学分析复习:振荡型级数的收敛判别

文章目录 振荡型级数的收敛判别 本篇文章适合个人复习翻阅,不建议新手入门使用 振荡型级数的收敛判别 直观上,振荡型级数说的是级数各项有正有负,求和的时候可以相互抵消,故可能收敛 命题:Abel求和公式 设复数列 { …

C++经典面试题目(六)

1、C中的循环结构有哪些?请举例说明它们的用法。 C 中的循环结构包括 for 循环、while 循环和 do-while 循环。 for 循环用于按指定的次数重复执行代码块。while 循环用于在条件为真时重复执行代码块。do-while 循环与 while 循环类似,但它先执行一次代…