SQLAlchemy 1.4/2.0 教程

优质
小牛编辑
131浏览
2023-12-01

关于此文档

新的SQLAlchemy教程现在集成在Core和ORM之间,作为对SQLAlchemy的统一介绍。在新的 2.0 style 可在 1.4 release ,ORM现在使用核心样式查询 select() 构造,并且核心连接和ORM会话之间的事务语义是等效的。注意每个部分的蓝色边框样式,这将告诉你一个特定主题是如何“ormish”的!

已经熟悉SQLAlchemy的用户,尤其是那些希望在1.4过渡阶段将现有应用程序迁移到SQLAlchemy 2.0下工作的用户,应该查看 迁移到Alchemy 文件也是。

对于新来者,此文档具有 lot 不过,到最后他们会被认为是 炼金术士 .

SQLAlchemy被表示为两个不同的api,一个构建在另一个之上。这些API称为 CoreORM .

SQLAlchemy Core 是SQLAlchemy作为“数据库工具包”的基础架构。该库提供了用于管理与数据库的连接、与数据库查询和结果交互以及SQL语句的编程构造的工具。

具有 右侧为深蓝色边框 将讨论 primarily Core-only ;当使用ORM时,这些概念仍在发挥作用,但在用户代码中不太明显。

SqLalChany ORM 以核心为基础提供可选 对象关系映射 能力。ORM提供了一个附加的配置层,允许用户定义的Python类 映射 以及一种称为 会话 . 然后,它扩展了核心级别的SQL表达式语言,允许按照用户定义的对象组合和调用SQL查询。

具有 左边的蓝色边框 将讨论 primarily ORM-only . 只有核心用户可以跳过这些。

一个有 两边都有明暗边界 将讨论 在ORM中也显式使用的核心概念 .

教程概述

本教程将按照应该学习的自然顺序介绍这两个概念,首先使用主要以核心为中心的方法,然后扩展到更多以ORM为中心的概念。

本教程的主要部分如下:

  • 建立连接-引擎 -所有SQLAlchemy应用程序都以 Engine 对象;下面是如何创建一个。

  • 处理事务和DBAPI -的使用API Engine 及其相关对象 ConnectionResult 都在这里展示。本内容是以核心为中心的,但是ORM用户至少需要熟悉 Result 对象。

  • 使用数据库元数据 -SQLAlchemy的SQL抽象以及ORM依赖于将数据库模式构造定义为Python对象的系统。本节从核心和ORM的角度介绍了如何做到这一点。

  • 使用数据 -在这里我们学习如何创建、选择、更新和删除数据库中的数据。所谓的 CRUD 这里的操作是根据SQLAlchemy核心给出的,其中有指向ORM对应对象的链接。中详细介绍的选择操作 使用核心或ORM选择行 同样适用于Core和ORM。

  • 使用ORM进行数据操作 介绍了ORM的持久性框架;基本上是以ORM为中心的插入、更新和删除方法,以及如何处理事务。

  • 使用相关对象 介绍了 relationship() 构造并提供如何使用它的简要概述,以及指向更深入文档的链接。

  • 进一步阅读 列出了一系列主要的顶级文档部分,它们完整地记录了本教程中介绍的概念。

版本检查

本教程是使用一个名为 doctest . 所有用 >>> 本文邀请alchemy的解释器作为自己的解释器实时运行。

如果要运行示例,建议读者执行快速检查,以验证我们是否处于打开状态 版本1.4 SQLAlChemy的名称:

>>> import sqlalchemy
>>> sqlalchemy.__version__  
1.4.0

关于未来的说明

本教程介绍了SQLAlchemy 1.4中发布的一个新API,称为 2.0 style . 2.0样式API的目的是提供与 SQLAlchemy 2.0 ,计划作为下一代SQLAlchemy。

为了提供完整的2.0API,一个名为 future 将被使用,这将在本教程描述 EngineSession 对象。这些标志完全启用2.0兼容模式,并允许教程中的代码完全继续。在使用 future 使用 create_engine() 函数,则返回的对象是 sqlalchemy.engine.Engine 描述为 sqlalchemy.future.Engine 。本教程将参考 sqlalchemy.future.Engine

SQLAlchemy 1.4 / 2.0 Tutorial

下一节: 建立连接-引擎