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.hqwc.cn/news/568367.html

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

相关文章

聚酰亚胺PI材料难于粘接,用什么胶水粘接?那么让我们先一步步的从认识它开始(九): 聚酰亚胺PI薄膜的缺点有哪些

聚酰亚胺PI薄膜的缺点有哪些 聚酰亚胺(Polyimide,简称PI)薄膜是一种高性能、高温、高压、化学稳定、耐磨损、耐火、耐腐蚀的薄膜材料,具有优良的电绝缘性能、低介电常数和低介电损耗,能够有效阻止电流流动&#xff0c…

sonar+gitlab提交阻断 增量扫描

通过本文,您将可以学习到 sonarqube、git\gitlab、shell、sonar-scanner、sonarlint 一、前言 sonarqube 是一款开源的静态代码扫描工具。 实际生产应用中,sonarqube 如何落地,需要考虑以下四个维度: 1、规则的来源 现在规则的…

PHP 三元搜索 - 迭代与递归(Ternary Search)

计算机系统使用不同的方法来查找特定数据。有多种搜索算法,每种算法更适合特定情况。例如,二分搜索将信息分为两部分,而三元搜索则执行相同的操作,但分为三个相等的部分。值得注意的是,三元搜索仅对排序数据有效。在本…

苍穹外卖Day07——总结7

前期文章 文章标题地址苍穹外卖Day01——总结1https://lushimeng.blog.csdn.net/article/details/135466359苍穹外卖Day02——总结2https://lushimeng.blog.csdn.net/article/details/135484126苍穹外卖Day03——总结3https://blog.csdn.net/qq_43751200/article/details/1363…

海外媒体发稿:出口贸易媒体发稿7个秘籍揭晓-华媒舍

出口贸易是许多国家经济增长的关键驱动力之一。不仅可以加快国家的发展步伐,还能为企业创造巨大的商机。如何能够在出口贸易中取得成功,如何能够引起媒体的关注,成为企业广告和宣传的焦点,是许多出口企业面临的挑战。本文将揭示出…

干货|化工安全生产管理系统的常见问题有哪些?

化工安全生产管理系统作为一款专注于化工行业的安全管理软件,可以帮助企业提升化工生产过程中的安全性和效率。今天,我们来说一说关于化工安全生产管理系统的常见问题。 问题一:化工安全生产管理系统能够解决哪些问题? 作为一款专…

【STM32嵌入式系统设计与开发】——9Timer(定时器中断实验)

这里写目录标题 一、任务描述二、任务实施1、ActiveBeep工程文件夹创建2、函数编辑(1)主函数编辑(2)USART1初始化函数(usart1_init())(3)USART数据发送函数( USART1_Send_Data(&…

Docker 容器编排利器 Docker Compose

文章目录 一、Docker Compose 简介二、Docker Compose 安装2.1 Mac、Windows 平台默认支持2.2 Linux 安装(通过包管理)2.2.1 安装2.2.2 测试2.2.3 卸载 2.3 使用PIP 安装与卸载2.3.1 PIP安装2.3.2 PIP 卸载 三、基本使用3.1 术语3.2 部署Flask 应用 四、Compose 常用命令4.1 命…

Android - 深入浅出理解SeLinux

1. 概述 官方文档: https://source.android.com/docs/security/features/selinux https://source.android.com/docs/security/features/selinux/images/SELinux_Treble.pdf Your visual how-to guide for SELinux policy enforcement | Opensource.com SeLinux&…

Linux-进程控制(进程创建、进程终止、进程等待)

一、进程创建 1.1 fork函数介绍 在命令行下我们可以通过 ./ exe文件 来创建一个进程,通过fork函数,我们可以通过代码的形式从一个进程中创建一个进程,新进程为子进程,原进程为父进程,子进程在创建时,会与…

并发编程之Callable、Runnable、Future与FutureTask

目录 前言一、Callable与Runnable1.1 Callable1.2 Runnable1.3 二者对比 二、Future与FutureTask2.1 Future2.2 FutureTask2.3 二者对比 三、综合使用3.1 Callable执行Future获取结果3.2 Callable执行任务FutureTask获取执行结果 四、应用场景 前言 在 Java 中,Cal…

Java-spring/springboot-maven项目环境的依赖

Maven****的传递性和依赖性 依赖管理 compile-默认值编译范围,默认 scope ,在工程环境的 classpath (编译环境)和打包(如果是 WAR 包,会包含在 WAR包中)时候都有效。provided容器或 JDK 已提供…