Python 数据库操作 SQLAlchemy!

SQLAlchemy使用教程 ORM(ObjectRelationalMapping,对象关系映射)可以绕过SQL语句,把数据库的table(表)映射为编程语言的class(类),可以直接使用编程语言的对象模型操作数据库,而不使用SQL语句。ORM把表映射成类,把行作为实例,把字段作为属性,在执行对象操作时最终会把对象的操作专函为数据库原生语句。... 阅读详情

包含编程籽料、学习路线图、爬虫代码、安装包等!【点击领取 100%免费!】

在这里插入图片描述

程序在运行过程中所有的的数据都存储在内存 (RAM) 中,「RAM 是易失性存储器,系统掉电后 RAM 中的所有数据将全部丢失」。在大多数情况下我们希望程序运行中产生的数据能够长久的保存,此时我们就需要将数据保存到磁盘上,无论是保存到本地磁盘,还是通过网络保存到服务器上,最终都会将数据写入磁盘文件。将数据保存在磁盘中我们需要面对一个数据格式的问题,此时就需要引入数据库操作。

数据库是专门用于数据的集中存储和查询的软件,它便于程序保存和读取数据,且能够通过特定的条件查询指定的数据。

Python 的标准数据库接口为 Python DB-API,它为编程人员提供了完善的数据库应用标称接口。但是使用 Python DB-API 需要开发人员自行去拼接 SQL,并把 SQL 做成模板。此时全靠编程人员来保证系统的安全性,完全有人来保证系统的安全性,不可避免的会出现错误,为了减少人为原因产生的错误 ORM 框架应运而生。

ORM 即 Object-Relational Mapping,把关系数据库的表结构映射到对象上面。负责这个转换过程的就是 ORM 框架

Python 中的 ORM 框架主要有 SQLObject、Storm、Django’s ORM、peewee、SQLALchemy。每种 ORM 框架都有各自的特点和相应的应用范围,本文主要介绍 SALALchemy,若你对其他框架感兴趣请自行搜索相关内容。

SQLAlchemy 简介
SQLAlchemy 是一个功能强大的开源 Python ORM 工具包。它提供了 “一个知名企业级的持久化模式的,专为高效率和高性能的数据库访问设计的,改编成一个简单的 Python 域语言的完整套件”。它采用了数据映射模式(像 Java 中的 Hibernate)而不是 Active Record 模式(像Ruby on Rails 的 ORM)。

SQLAlchemy官网。

SQLAlchemy 的优缺点:
优点:

企业级 API,使得代码有健壮性和适应性。
灵活的设计,使得能轻松完成复杂的数据查询。
缺点:

工作单元概念不常见。
重量级 API,导致长学习曲线。
SQLAlchemy 应用
以下是一段使用 SQLAlchemy 操作 SQLite 数据库的代码

在这里插入图片描述
在这里插入图片描述
在以上代码中我们完成了一下工作:

连接到数据库「本次我们使用的是 SQLite 数据库」。
创建数据库表并将其映射到 Python 类上。
创建数据实例,并将其保存到数据库中。
对保存在数据库中的数据进行读取和修改。
导入 SQLAlchemy 模块并连接到 SQLite 数据库
SQLAlchemy 通过 create_engine 函数来创建数据库连接。create_engine 函数的第一个参数是数据了 URL,第二个参数 echo 设置为 True 表示在程序的运行过程中我们可以在控制台看到操作所涉及到的 SQL 语句。

在本次示例中我们使用的数据库是 SQLite,你也可以使用其他数据库。只有在调试状态下将 echo 设置为 True,在生产环境请将 echo 设置为 false 或省略 echo 参数。

在这里插入图片描述
create_engine 返回的是一个 Engine 实例,它指向数据库的一些核心接口。SQLAlchemy会根据你选择的数据库配置而调用对应的 DB-API。

create_engine 函数并会不真正建立数据库的 DB-API 连接,当调用 Engine.execute() 或 Engine.connect() 方法时才会建立连接。大多数情况下我们无需关注 Engine,SQLAlchemy 会帮我们处理。

创建数据库表
将 python 类映射到数据库表上,这个 Python 类需要时一个指定基类的子类,这个基类应当含有ORM映射中相关的类和表的信息。这个基类可以通过 declarative_base 方法来创建。

在这里插入图片描述
在这个示例中使用 Base 基类创建了一个 User 的类来作为数据库表。
在这里插入图片描述
在 User 类中我们定义了需要映射到数据库表上的属性,主要包括表名称、列的类型和名称等。这个类至少应包含一个名为 tablename 的属性来给出数据库表的名称,及至少一个给出表的主键「primary key」的列。在 User 类中我们定义了表名称为 users,定义了 id、name、fullname、nickname 四列数据,并设置 id 为表的主键。

创建完成 User 类后,实际在 SQLite 数据库中并不存在该表,此时需要使用 declarative 基类的 Metadata.create_all 在数据库中创建 users 表,在 create_all 方法中我们需要传入参数 Engine。

通过 Metadata.create_all 传入的 Engine 参数,SQLAlchemy 自动实现对数据库的连接。

在这里插入图片描述
metadata.create_all 方法执行完成后在 SQLite 数据库即可查到名称为 users 的数据表。

保存数据实例到数据库中
将数据保存到数据库中,我们需要 User 的实例和用于操作数据的 session。

session 是 ORM 数据的接口,可以通过 session 来操作数据库中的数据。

使用已经定义完成的 User 类将数据实例化。

在这里插入图片描述
获取 session 首先需要使用 sessionmaker 来得到 session 的工厂类,然后通过工厂类来获取 session。
在这里插入图片描述
session 通过 Engine 与数据库进行关联。session 创建完成后并不会立即打开与数据库的连接,只有当我们第一使用 session 是,才会从 Engine 维护的连接池中取出一个连接来操作数据库,这个连接在我们关闭 session 时会被释放。

获取 session 后可以通过 add 和 commit 方法将数据保存到数据库中。

在这里插入图片描述
对数据库中的数据进行查询和修改
SQLAlchemy 通过 query 来对数据进行查询,可以通过 filter 方法对查询结果进行筛选。
在这里插入图片描述
以上代码通过 query 获取数据库中所有 User 数据,然后通过 filter 方法筛选出 id 小于 2 和 id 小于等于 5 的数据。

数据库的修改可以通过 merge 和 update 来实现

在这里插入图片描述
使用 merge 修改数据,当数据中存在该数据时修改,不存在是将当前数据插入数据库中。

代码运行结果
以上示例代码的运行结果如下
在这里插入图片描述

由于我们设置 create_engine 中 echo 为 True,因此在执行结果中包含了 SQLAlchemy 打印的 SQL 语句,我们可以取消 crete_engine 中的 echo
在这里插入图片描述
此时的执行结果如下:
在这里插入图片描述
当取消 echo 后,程序运行结果中原有的 SQL 语句消失。

本文只是对 SQLAlchemy 的使用进行简单的介绍,SQLAlchemy 本身还有很多特性和运用方法我们可以共同探讨。

最后:
如果你是准备学习Python或者正在学习(想通过Python兼职),下面这些你应该能用得上:
包括:Python安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

在这里插入图片描述

SQLAlchemy入门:详细介绍SQLAlchemy的安装、配置及基本使用方法 SQLAlchemy由Mike Bayer创建,它提供了两种主要的组件:SQLAlchemy Core和SQLAlchemy ORM。SQLAlchemy Core是一个SQL表达式语言和数据库抽象层,而SQLAlchemy ORM则是一个建立在Core之上的对象关系映射器。在SQLAlchemy ORM中,模型通常是通过定义Python类来实现的,这些类继承自。每个类对应于数据库中的一个表,类的属性对应于表中的列。在这个示例中,我们首先创建了一个Base类,它将作为所有模型类的基类。 阅读详情

相关推荐

SQLAlchemy讲解

1.0 SQLAIchemy的作用 SQLAIchemy是一个数据库ORM框架,安装命令为 pip install SQLAIchemy #mysql下载,ubuntu sudo apt-get install mysql-server libmysqlclient-dev-yq #pymysql下载 pip install pymysql 2.0 通过SQLAIchemy连接数据库 from sqlalchemy import create_engine #地址 HOSTNAME = '127.0.

baidu_39394442的博客 1190

python常用库之数据库orm框架之SQLAlchemy

SQLAlchemy是一个基于Python实现的SQL工具包和ORM框架,提供了高层抽象来管理数据库交互。

西京刀客 2万+

Python 学习之旅:高级阶段(十二)数据库操作 SQLAlchemy

SQLAlchemy 并不直接操作数据库,而是提供了一套通用的 API,让你可以用类似的方式与 MySQL、PostgreSQL、SQLite 等多种数据库进行通信。它就像是一个翻译官,将你用 Python 语法编写的数据库操作指令,翻译成不同数据库能理解的语言。使用 SQLAlchemy 的 ORM 功能,定义一个简单的User模型类,对应数据库中的users# 创建基类# 创建表结构在这个例子中,创建了一个基类,所有的模型类都将继承自这个基类。User类定义了idname和age三个属性,分别对应。

happycell188的博客 1604

SQLAlchemy简明教程

SQLAlchemy 是 Python 著名的 ORM 工具包。通过 ORM,可以用面向对象的方式来操作数据库,不再需要编写 SQL 语句。本篇不解释为什么要使用 ORM,主要讲解 SQLAlchemy 的用法。SQLAlchemy 支持多种数据库,除 sqlite 外,其它数据库需要安装第三方驱动,不同数据库最主要区别在连接数据库 url 不同。本篇以 sqlite 数据库为例进行说明。 建立到数据库的连接 Engine 对象是使用 sqlalchemy 的起点,根据 sqlalchemy documen

王敏的专栏 6万+

在Python3下怎样用Flask-SQLAlchemy对MySQL数据库操作

现在让我们开始定义数据库模型。假设我们需要创建一个用户表来存储基本信息,可以在这里使用了SQLAlchemy提供的基本字段类型如StringInteger等来定义列属性,并通过建立与其他表之间的关系。通过本文,我们了解了如何在Python3环境下使用Flask-SQLAlchemy与MySQL数据库进行交互的基本流程,并探讨了一些优化性能的方法。希望这些知识能够帮助你在未来的项目中更加游刃有余地处理数据库操作。当然,实践出真知,只有不断尝试和总结经验,才能成为一名优秀的Web开发者。

xiamu_CDA的博客 1293

Python使用Flask-SQLAlchemy连接数据库操作示例

本文实例讲述了Python使用Flask-SQLAlchemy连接数据库操作。分享给大家供大家参考,具体如下: 需要安装flask pip install flask 安装Mysql-Python (这个是py的mysql驱动,这个在官方没有win的支持,只有第三方才有py2.7的whl) pip install MySQL_python-1.2.5-cp27-none-win_amd64.wh...

python数据库编程 python进阶学习 2594

python利用数据库写项目_[项目分享]Python 数据库操作 SQLAlchemy!包括400集大型Python教程免费分享...

程序在运行过程中所有的的数据都存储在内存 (RAM) 中,「RAM 是易失性存储器,系统掉电后 RAM 中的所有数据将全部丢失」。在大多数情况下我们希望程序运行中产生的数据能够长久的保存,此时我们就需要将数据保存到磁盘上,无论是保存到本地磁盘,还是通过网络保存到服务器上,最终都会将数据写入磁盘文件。将数据保存在磁盘中我们需要面对一个数据格式的问题,此时就需要引入数据库操作。数据库是专门用于数据的集...

weixin_39572152的博客 124

Python ORM框架SQLAlchemy操作

ORM 全称Object Relational Mapping(对象关系映射)。 特点是操纵Python对象而不是SQL查询,也就是在代码层面考虑的是对象,而不是SQL,体现的是一种程序化思维,这样使得Python程序更加简洁易读。 具体的实现方式是将数据库表转换为Python类,其中数据列作为属性,数据库操作作为方法。 优点 简洁易读:将数据表抽象为对象(数据模型),更直观易读 可移植:封装了多种数据库引擎,面对多个数据库,操作基本一致,代码易维护 更安全:有效避免SQL注入 具体实现库 SQLOb

生活屁颠过的博客 2万+

从0到1学习 SQLAlchemy 2.x:打造你的 Python 数据库操作利器

SQLAlchemy 2.x 是一个功能强大且灵活的 ORM 工具,掌握它将极大地提升你的 Python 数据库操作能力。通过本文提供的学习路线和资源,相信你能够从零开始学习 SQLAlchemy 2.x,并将其应用到实际项目中。祝你学习愉快!

未来已来,AI时代,学AI编程,做AI量化,就来大鹏AI教育。 1397

python Flask-SQLAlchemy入门

Flask-SQLAlchemy简介 Flask是python的一个web框架,利用它可以快速搭建一个web服务器;SQLAlchemy则是一个用于操作数据库的ORM框架。 何为ORM框架? ORM(Object Relational Mapping) 即对象关系映射,它将编程语言中的对象模型与数据库的关系模型建立映射关系,这样做可以简化sql语言操作数据库的繁琐过程(原生sql的编写及拼接等)...

chenf1999的博客 3499

实现高精度卷积混响--MATLAB仿真篇

一、前言 之前在STM32F407上现实了直播声卡,实现的经典Schroeder混响模型和Moorer混响模型,得到不错效果。后来得知卷积混响最为真实地表现空间的特性,所以也就尝试在MCU上实现一个高精度的卷积混响(卷积点数为32768),目前MCU出来的混响效果算得上一流水准,本人也在计划在ADI的21489或者SC584上更高精度的卷积混响。 二、卷积方式 1、conv1是使用MATLAB自带卷积函数conv 2、conv2和conv3是改进后卷积过程,具有减少运算量特点,方便嵌入式移植 clear;

Six44的博客 5082

Python中使用SQLAlchemy进行数据库操作的完整指南

SQLAlchemy 是一个开源的 Python 工具包,由 Michael Bayer 创建,首次发布于 2006 年。一套完整的企业级持久性模式高性能的数据库访问简单且复杂查询的统一接口可选的 ORM 功能核心:提供SQL表达式语言和数据库连接池ORM:建立在核心之上的对象关系映射层这种设计使得开发者可以根据需求选择使用ORM或直接使用SQL表达式语言。SQLAlchemy 是 Python 生态系统中最完善的数据库工具包,提供了从简单到复杂的所有数据库操作能力。

MenzilBiz的博客 2317

C# 基于NetStandard.Opc.Ua实现高效OPC UA数据订阅与同步读写

本文详细介绍了在C#中利用NetStandard.Opc.Ua库高效实现OPC UA数据订阅与同步读写的方法。通过实战代码演示了如何建立连接、配置订阅管理器、优化监控项分组,并对比了同步与异步读写的适用场景,帮助工业软件开发者构建稳定可靠的数据采集客户端,提升工业物联网应用开发效率。

weixin_29201859的博客 229

python之sqlalchemy详解

python之sqlalchemy详解 SQLAlchemy连接数据库 可以使用ORM框架操作数据库 ORM框架 = object relationship mappiy 框架 学习前提(软件) mysql、pymysql(或者MySQLdb)、SQLAlchemy SQLAlchemy连接数据库 步骤 首先导入sqlalchemy.create_engine 输入配置信息(服务...

没有撤退可言. 2万+

【Arc GIS 零基础教学】土地利用类型图的绘制方法

​Hi,我是胡学长!今天教大家怎么利用Arc GIS 绘制土地利用类型图。土地利用类型图是表达土地资源的利用现状、地域差异和分类的专题地图。它是研究土地利用的重要工具和基础资料,同时也是土地利用调查研究的主要成果之一。在编制土地利用图的基础上,对当前利用的合理程度和存在的问题、进一步利用的潜力、合理利用的方向和途径,进行综合分析和评价。因此,土地利用图是调整土地利用结构,因地制宜进行农业、工矿业和交通布局、城镇建设、区域规划、国土整治、农业区划等的一项重要科学依据。......

一起来交流学习吧 1万+

自绘CListCtrl时发现ON_WM_MEASUREITEM_REFLECT和DrawItem(LPDRAWITEMSTRUCT lpMeasureItemStruct) 无响应

自绘CListCtrl时发现ON_WM_MEASUREITEM_REFLECT和DrawItem(LPDRAWITEMSTRUCT lpMeasureItemStruct) 无响应 一般情况下,我们都是在 dialog 里面 放一个 list 控件,然后 用自己的类绑定自己的自绘对象,如同下面: 1.  在 dialog 里面 加一个 list 列表 2. 然后 绑定这个列表 哈哈...

mfreesky的专栏 2171

Python SQLAlchemy 完整指南

接下来,创建一个数据表。# 创建一个数据表这段代码使用 SQLAlchemy 定义了一个名为users的数据表,包含idname和age三个字段。SQLAlchemy是一个功能强大的Python库,可用于简化数据库操作。本教程提供了SQLAlchemy基本用法示例,包括连接数据库、创建表、以及查询、插入、更新和删除数据。首先,使用函数连接到数据库,然后使用MetaData()定义表结构。通过insert()插入数据,select()查询数据,update()更新数据,delete()删除数据。

aobulaien001的博客 1946

计算机视觉与深度学习 | 基于Matlab的多特征融合可视化指纹识别系统(附完整代码)

此系统展示了一个完整的指纹识别流程,实际应用中可以根据需求进一步优化算法,如改进方向场计算、增加脊线频率特征、使用更精确的匹配算法等。

尘世冰封的专栏 362

python - Flask_SQLAlchemy数据库操作

1、ORM ORM全拼Object-Relation Mapping. 中文意为对象-关系映射. 主要实现模型对象到关系数据库数据的映射. 优点 : 只需要面向对象编程, 不需要面向数据库编写代码. 对数据库的操作都转化成对类属性和方法的操作. 不用编写各种数据库的sql语句. 实现了数据模型与数据库的解耦, 屏蔽了不同数据库操作上的差异. 不在关注用的是mysql、oracle...等....

SAGGITARXM 1043

dToF直方图之美_deadtime死区时间

IMX459的死区时间可以在6ns,这个时间是什么级别,车载激光雷达激光器的光脉宽一般都在4ns以上,也就是这个时间贴近去SPAD的死区时间,这就导致了pile up会非常弱,不会有太多数量的光子计数堆积,加上某些SPAD设计,对TDC有一些更深入的考量,所以不需要去校正pile up算法。Sensor层面决定了pile up的复杂程度,如果一个dToF的SPAD一致性非常好,那么pile up校正可以简单到极致,也就是一句代码的事,比如IMX611,优秀到不需要后端去考虑校正pile up。

致力于lidar应用开发 2151

点云数据生成DEM,并导出三维模型

点云数据生成DEM,并导出三维模型

qq_42540466的博客 2万+

Python SQLAlchemy模块:从入门到实战的数据库操作指南

字段类型需严格匹配数据库类型,如对应MySQL的DECIMAL(10,2),可避免精度丢失。连接管理:始终使用会话工厂,避免直接创建会话事务控制:复杂操作必须包含在try-except块中查询优化:优先使用join加载关联数据,减少N+1查询索引策略:为WHERE、JOIN、ORDER BY字段建立索引迁移管理:使用Alembic进行数据库变更管理SQLAlchemy通过将数据库操作转化为Python对象操作,显著提升开发效率。

这家伙很懒,什么都没有留下 775

华为OD机试真题 新系统【查找能被整除的最大整数】

华为OD新系统机试真题【查找能被整除的最大整数】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【查找能被整除的最大整数】

qq_45776114的博客 674

前端Python应用指南(七)使用SQLAlchemy与Django ORM:数据库操作的Python实践

SQLAlchemy是一个非常强大的Python数据库工具库,广泛用于数据库操作。它支持多种数据库类型,并且能够实现SQL的原生操作以及面向对象的数据库映射。SQLAlchemy提供了两种主要的操作方式:一种是核心模式(Core),另一种是ORM模式ORM模式允许你以面向对象的方式与数据库进行交互,简化了数据库操作。Django是一个全栈Web框架,内置了强大的ORM(对象关系映射)功能,使得开发者可以通过Python对象与数据库进行交互。

分享有趣的、贴近生活的CS知识 1778

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

SQLAlchemy:Python 数据库操作神器

SQLAlchemy 是 Python 数据库操作的强大工具,其灵活性和功能深度可以满足各种需求。从基础的 CRUD 操作到复杂的 ORM 查询,再到多表关系处理,SQLAlchemy 提供了一整套完整的解决方案。通过结合最佳实践和实际项目经验,你可以充分利用 SQLAlchemy 的能力,提升数据库操作的效率和代码的可维护性。

萧鼎的博客 861

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

flask SQLAlchemy 数据库操作

数据库URL必须保存到Flask配置对象的SQLALCHEMY_DATABASE_URI键中。将SQLALCHEMY_COMMIT_ON_TEARDOWN键,将其设为True时,每次请求结束后都会自动提交数据库中的变动。 简单的配置SQLite数据库from flask_sqlalchemy import SQLAlchemybasedir = os.path.abspath(os.path.di

Dream It Possible 8470

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: 【Python实战】Python制作天气查询软件!
下一篇: 超详细Python+Pycharm下载安装教程!
Python_trys
博客等级 码龄2年 4380粉丝 377原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值