跳转到主要内容

数据库抽象库

项目描述

PyPI PyPI - Python Version PyPI - Downloads

Python SQL工具包和对象关系映射器

简介

SQLAlchemy是一个Python SQL工具包和对象关系映射器,它为应用开发者提供了SQL的全部功能和灵活性。SQLAlchemy提供了一套全面的知名企业级持久化模式,这些模式设计用于高效的、高性能的数据库访问,并适配为一个简单、Pythonic的领域语言。

SQLAlchemy的主要功能包括

  • 一个工业级的ORM,基于核心的标识图、工作单元和数据映射模式构建。这些模式允许使用声明性配置系统透明地持久化对象。领域模型可以自然构建和操作,并且更改会自动与当前事务同步。

  • 一个面向关系的查询系统,明确地暴露了SQL的全面功能,包括连接、子查询、关联和几乎所有其他功能,以对象模型的形式。使用ORM编写查询时,使用的与编写SQL时使用的相同关系组合技术。虽然您可以在任何时候切换到SQL,但实际上几乎不需要这样做。

  • 一个全面的灵活系统,用于预加载相关集合和对象。集合在会话中缓存,可以单独访问加载,一次性使用连接加载,或者通过查询每个集合在完整结果集中加载。

  • 一个核心SQL构造系统和DBAPI交互层。SQLAlchemy核心与ORM分开,并且本身就是一个完整的数据库抽象层,包括可扩展的基于Python的SQL表达式语言、模式元数据、连接池、类型强制和自定义类型。

  • 所有主键和外键约束都假定是复合和自然的。代理整数主键当然是规范,但SQLAlchemy从不假设或硬编码到此模型。

  • 数据库自省和生成。数据库模式可以一步“反射”到表示数据库元数据的Python结构;这些相同的结构可以生成CREATE语句返回 - 所有这些都在核心中,独立于ORM。

SQLAlchemy的哲学

  • 随着规模和性能开始变得重要,SQL数据库越来越不像对象集合;对象集合随着抽象的重要性而越来越不像表和行。SQLAlchemy旨在同时满足这两个原则。

  • ORM不需要隐藏“R”。关系数据库提供了丰富的基于集合的功能,应该完全暴露。SQLAlchemy的ORM提供了一套开放式模式,允许开发者在域模型和关系模式之间构建自定义中介层,将所谓的“对象关系阻抗”问题转变为遥远的记忆。

  • 在所有情况下,开发者都做出有关对象模型以及关系模式的设计、结构和命名约定的所有决定。SQLAlchemy只提供自动化这些决定的手段。

  • 使用SQLAlchemy,不存在“ORM生成了糟糕的查询”这种情况 - 您可以完全控制查询的结构,包括连接的组织方式、子查询和关联的使用、请求的列。SQLAlchemy所做的一切最终都是开发者发起的决定的结果。

  • 如果问题不需要ORM,则不要使用ORM。SQLAlchemy由核心和单独的ORM组件组成。核心提供了一种完整的SQL表达式语言,允许以Pythonic方式构建直接渲染到SQL字符串的SQL结构,并返回基本增强的DBAPI游标的结果集。

  • 事务应该是规范。使用SQLAlchemy的ORM,在调用commit()之前,没有任何内容存储到永久存储中。SQLAlchemy鼓励应用程序创建一种一致的方法来界定一系列操作的开始和结束。

  • 永远不要在SQL语句中渲染文字值。尽可能使用绑定参数,允许查询优化器有效地缓存查询计划,使SQL注入攻击成为不可能。

文档

最新文档在

https://sqlalchemy.org.cn/docs/

安装/需求

完整的安装文档在 安装

获取帮助/开发/错误报告

请参阅SQLAlchemy社区指南

行为准则

首先,SQLAlchemy非常重视用户和开发者之间礼貌、周到和建设性的沟通。请参阅我们的当前行为准则行为准则

许可协议

SQLAlchemy遵循MIT许可证分发。

项目详情


发布历史 发布通知 | RSS源

下载文件

下载适合您平台文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

sqlalchemy-2.0.35.tar.gz (9.6 MB 查看哈希值)

上传

构建分发

SQLAlchemy-2.0.35-py3-none-any.whl (1.9 MB 查看哈希值)

上传 Python 3

SQLAlchemy-2.0.35-cp312-cp312-win_amd64.whl (2.1 MB 查看哈希值)

上传 CPython 3.12 Windows x86-64

SQLAlchemy-2.0.35-cp312-cp312-win32.whl (2.1 MB 查看哈希值)

上传于 CPython 3.12 Windows x86

SQLAlchemy-2.0.35-cp312-cp312-musllinux_1_2_x86_64.whl (3.2 MB 查看哈希值)

上传于 CPython 3.12 musllinux: musl 1.2+ x86-64

SQLAlchemy-2.0.35-cp312-cp312-musllinux_1_2_aarch64.whl (3.2 MB 查看哈希值)

上传于 CPython 3.12 musllinux: musl 1.2+ ARM64

SQLAlchemy-2.0.35-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.2 MB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ x86-64

SQLAlchemy-2.0.35-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.2 MB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ ARM64

SQLAlchemy-2.0.35-cp312-cp312-macosx_11_0_arm64.whl (2.1 MB 查看哈希值)

上传于 CPython 3.12 macOS 11.0+ ARM64

SQLAlchemy-2.0.35-cp312-cp312-macosx_10_9_x86_64.whl (2.1 MB 查看哈希值)

上传于 CPython 3.12 macOS 10.9+ x86-64

SQLAlchemy-2.0.35-cp311-cp311-win_amd64.whl (2.1 MB 查看哈希值)

上传于 CPython 3.11 Windows x86-64

SQLAlchemy-2.0.35-cp311-cp311-win32.whl (2.1 MB 查看哈希值)

上传于 CPython 3.11 Windows x86

SQLAlchemy-2.0.35-cp311-cp311-musllinux_1_2_x86_64.whl (3.2 MB 查看哈希值)

上传于 CPython 3.11 musllinux: musl 1.2+ x86-64

SQLAlchemy-2.0.35-cp311-cp311-musllinux_1_2_aarch64.whl (3.1 MB 查看哈希值)

上传于 CPython 3.11 musllinux: musl 1.2+ ARM64

SQLAlchemy-2.0.35-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.2 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ x86-64

SQLAlchemy-2.0.35-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.2 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ ARM64

SQLAlchemy-2.0.35-cp311-cp311-macosx_11_0_arm64.whl (2.1 MB 查看哈希值)

上传时间: CPython 3.11 macOS 11.0+ ARM64

SQLAlchemy-2.0.35-cp311-cp311-macosx_10_9_x86_64.whl (2.1 MB 查看哈希值)

上传时间: CPython 3.11 macOS 10.9+ x86-64

SQLAlchemy-2.0.35-cp310-cp310-win_amd64.whl (2.1 MB 查看哈希值)

上传时间: CPython 3.10 Windows x86-64

SQLAlchemy-2.0.35-cp310-cp310-win32.whl (2.1 MB 查看哈希值)

上传时间: CPython 3.10 Windows x86

SQLAlchemy-2.0.35-cp310-cp310-musllinux_1_2_x86_64.whl (3.1 MB 查看哈希值)

上传时间: CPython 3.10 musllinux: musl 1.2+ x86-64

SQLAlchemy-2.0.35-cp310-cp310-musllinux_1_2_aarch64.whl (3.0 MB 查看哈希值)

上传时间: CPython 3.10 musllinux: musl 1.2+ ARM64

SQLAlchemy-2.0.35-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ x86-64

SQLAlchemy-2.0.35-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.1 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ ARM64

SQLAlchemy-2.0.35-cp310-cp310-macosx_11_0_arm64.whl (2.1 MB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

SQLAlchemy-2.0.35-cp310-cp310-macosx_10_9_x86_64.whl (2.1 MB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ x86-64

SQLAlchemy-2.0.35-cp39-cp39-win_amd64.whl (2.1 MB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

SQLAlchemy-2.0.35-cp39-cp39-win32.whl (2.1 MB 查看哈希值)

上传于 CPython 3.9 Windows x86

SQLAlchemy-2.0.35-cp39-cp39-musllinux_1_2_x86_64.whl (3.1 MB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.2+ x86-64

SQLAlchemy-2.0.35-cp39-cp39-musllinux_1_2_aarch64.whl (3.0 MB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.2+ ARM64

SQLAlchemy-2.0.35-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

SQLAlchemy-2.0.35-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.1 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ARM64

SQLAlchemy-2.0.35-cp39-cp39-macosx_11_0_arm64.whl (2.1 MB 查看哈希值)

上传于 CPython 3.9 macOS 11.0+ ARM64

SQLAlchemy-2.0.35-cp39-cp39-macosx_10_9_x86_64.whl (2.1 MB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ x86-64

SQLAlchemy-2.0.35-cp38-cp38-win_amd64.whl (2.1 MB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

SQLAlchemy-2.0.35-cp38-cp38-win32.whl (2.1 MB 查看哈希值)

上传于 CPython 3.8 Windows x86

SQLAlchemy-2.0.35-cp38-cp38-musllinux_1_2_x86_64.whl (3.1 MB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.2+ x86-64

SQLAlchemy-2.0.35-cp38-cp38-musllinux_1_2_aarch64.whl (3.0 MB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.2+ ARM64

SQLAlchemy-2.0.35-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

SQLAlchemy-2.0.35-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.1 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ ARM64

SQLAlchemy-2.0.35-cp38-cp38-macosx_11_0_arm64.whl (2.1 MB 查看哈希值)

上传于 CPython 3.8 macOS 11.0+ ARM64

SQLAlchemy-2.0.35-cp38-cp38-macosx_10_9_x86_64.whl (2.1 MB 查看哈希值)

上传于 CPython 3.8 macOS 10.9+ x86-64

SQLAlchemy-2.0.35-cp37-cp37m-win_amd64.whl (2.1 MB 查看哈希值)

上传于 CPython 3.7m Windows x86-64

SQLAlchemy-2.0.35-cp37-cp37m-win32.whl (2.1 MB 查看哈希值)

上传于 CPython 3.7m Windows x86

SQLAlchemy-2.0.35-cp37-cp37m-musllinux_1_2_x86_64.whl (3.0 MB 查看哈希值)

上传于 CPython 3.7m musllinux: musl 1.2+ x86-64

SQLAlchemy-2.0.35-cp37-cp37m-musllinux_1_2_aarch64.whl (2.9 MB 查看哈希值)

上传于 CPython 3.7m musllinux: musl 1.2+ ARM64

SQLAlchemy-2.0.35-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ x86-64

SQLAlchemy-2.0.35-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.0 MB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ ARM64

SQLAlchemy-2.0.35-cp37-cp37m-macosx_10_9_x86_64.whl (2.1 MB 查看哈希值)

上传于 CPython 3.7m macOS 10.9+ x86-64

由以下支持