概述

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

SQLAlchemy SQL工具包和对象关系映射器是一套用于处理数据库和Python的综合工具。它有几个不同的功能领域,可以单独使用或组合在一起。其主要组件如下所示,组件依赖关系组织成层:

上面,SQLAlChemy的两个最重要的面向前端的部分是 对象关系映射器(ORM) 以及 Core

核心包含SQLAlChemy的SQL以及数据库集成和描述服务的广度,其中最突出的部分是 SQL表达式语言

SQL表达式语言是一个完全独立于ORM包的工具包,它提供了一个构造由可组合对象表示的SQL表达式的系统,然后可以针对特定事务范围内的目标数据库“执行”这些SQL表达式,并返回结果集。插入、更新和删除(即 DML )是通过传递表示这些语句的SQL表达式对象以及表示要与每个语句一起使用的参数的字典来实现的。

ORM构建在Core之上,以提供使用映射到数据库模式的域对象模型的方法。在使用ORM时,SQL语句的构造方式与使用Core时基本相同,但是DML的任务(这里指的是数据库中业务对象的持久性)是使用称为 unit of work ,它将针对可变对象的状态更改转换为INSERT、UPDATE和DELETE构造,然后根据这些对象调用这些构造。特定于ORM的自动化和以对象为中心的查询功能也增强了SELECT语句。

使用Core和SQL表达式语言提供了一个以模式为中心的数据库视图,以及一个面向不变性的编程范例,而ORM则在此基础上构建了一个以域为中心的数据库视图,具有更明显的面向对象和依赖于可变性的编程范例。由于关系数据库本身是可变服务,不同之处在于Core/SQL表达式语言是面向命令的,而ORM是面向状态的。

文档概述

文档分为四个部分:

代码示例

工作代码示例(主要是关于ORM)包含在SQLAlchemy分发版中。所有包含的示例应用程序的说明位于 ORM实例 .

还有很多示例涉及核心SQLAlChemy构造以及wiki上的ORM。看见 Theatrum Chemicum

安装指南

支持的平台

已针对以下平台测试了SQLAlchemy:

  • Cypthon 2.7

  • cPython 3.6及更高版本

  • PyPy 2.1或更高版本

在 1.4 版更改: 在python3系列中,3.6现在是python3支持的最低版本。

参见

Python3.6是Python3的最低版本;Python2.7仍然受支持

异步IO支持

SQLAlChemy的 asyncio 支持取决于 greenlet 项目。此依赖项将默认安装在常见的计算机平台上,但是并不是每个体系结构都支持此依赖项,也可能不会在不太常见的体系结构上默认安装此依赖项。请参阅部分 Asyncio平台安装说明 有关确保异步支持的其他详细信息,请参阅。

支持的安装方法

SQLAlChemy安装是通过标准Python方法进行的,这些方法基于 setuptools ,可以通过引用 setup.py 直接或通过使用 pip 或其他与setuptools兼容的方法。

在 1.1 版更改: setuptools现在是setup.py文件所必需的;不再支持纯distutils安装。

通过PIP安装

什么时候? pip 可以从pypi下载分发版并一步安装:

pip install SQLAlchemy

此命令将下载最新的 已发布 SQLAlChemy的版本,该版本来自 Python Cheese Shop 并将其安装到您的系统中。

为了安装最新的 预缓解 版本,例如 1.4.0b1 ,pip要求 --pre 使用标志:

pip install --pre SQLAlchemy

在上面的位置,如果最新版本是预发布版本,则将安装它而不是最新发布版本。

使用setup.py安装

否则,您可以使用 setup.py 脚本::

python setup.py install

安装C延长件

SQLAlchemy包括C扩展,它为处理结果集提供了额外的速度提升。CPython的2.xx和3.xx系列都支持扩展。

setup.py 如果检测到适当的平台,将自动生成扩展。如果由于缺少编译器或其他问题导致C扩展的生成失败,安装过程将输出一条警告消息,并在完成时重新运行不带C扩展的生成,报告最终状态。

要在不编译C扩展的情况下运行生成/安装,请 DISABLE_SQLALCHEMY_CEXT 可以指定环境变量。这种方法的用例要么是针对特殊的测试环境,要么是对于通常的“重建”机制无法克服的兼容性/构建问题的罕见情况:

export DISABLE_SQLALCHEMY_CEXT=1; python setup.py install

在 1.1 版更改: 遗产 --without-cextensions 标志已从安装程序中删除,因为它依赖于不推荐使用的安装工具功能。

安装数据库API

SQLAlchemy的设计目的是使用 DBAPI 为特定数据库构建的实现,包括对最流行的数据库的支持。中的各个数据库部分 方言 为每个数据库枚举可用的DBAPI,包括外部链接。

检查已安装的SQLAlchemy版本

本文档涵盖SQLAlchemy 1.4版。如果您在一个已经安装了sqlacalchemy的系统上工作,请从python提示符检查版本,如下所示:

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

1.3至1.4迁移

有关从1.3更改为1.4的说明,请访问 SQLAlchemy 1.4有什么新功能? .