功能和哲学
关于 SQLAlchemy 的概述。
人们对 SQLAlchemy 的评价
SQLAlchemy 可能是唯一一个我从未达到“等等,我需要做某事,却无法做到”的库。我遇到的每一个奇怪的边缘案例都得到了原生支持,或者可以通过干净的方式直接访问原始接口来支持。很棒的库,强烈推荐。
一个真正可靠、也许是独一无二的库,据我所知,它完全解决了“阻抗不匹配”问题。如果你以结构化的方式直接使用数据库 API,你可能已经重新实现了 sqlalchemy 核心,将你的程序重构为使用 sqlalchemy 将为你提供 ORM,如果你需要的话,并将使你的代码跨数据库实现移植,即使你没有使用它。如果你已经使用 ORM,重构为使用 sqlalchemy 将允许你以连贯的方式开始优化低级数据库操作(即,不仅仅是在模型中散布 SQL)。
我是我工作场所正确、经过思考且高性能 SQL 的最大支持者,我必须说,一个 ORM/数据库驱动程序组合改变了我对 ORM 的看法。
当您使用 SQLAlchemy(Python 的 ORM)时,您会感觉到对幕后为您完成的操作有完全的控制权。
首先,他们有了一个绝妙的想法,在构建 ORM 之前构建一个对 SQL 的抽象,这样,如果您不想使用映射到表的对象,您可以直接使用字典,使用一个不错的 SQL 生成 API,允许您轻松地重构/检查 SQL 代码。
其次,ORM 本身非常棒。我不知道如何解释它,但您始终感觉到对发生的事情有控制权。如果任何事情没有按预期工作,您始终可以扩展框架。它非常适合于此。
我要求将 SQLAlchemy 重命名为 SQLAwesome。没有特别的原因。
SQLAlchemy 是我使用过的任何软件任务中最设计精良的库之一,没有之一。我用它做了各种疯狂的反射连接,使用元编程功能从无到有地引导我的 ORM,在会话创建器中添加了自己的类似 Rails 的范围功能等等。SQLAlchemy 就是能用(TM)。如果你是一名 Python 程序员,学习它是你能做的最好的事情之一。
...它是一种不仅解决它所解决的需求,而且推荐它所编写的语言的库 - 当我考虑使用除 Python 以外的语言进行涉及数据库的项目时,我的第一个想法总是,“但是什么可以替代 SQLAlchemy 呢?”
在与 Hibernate/Entity Framework/等等进行过多次战斗后,我对 ORM 失去了信心。SQLAlchemy 恢复了它。ORM 做对了。
- Jan-Erik Strøm
我们可以使用很多 Python 库/框架,其中一些对编写 Web 服务非常有利。SQLAlchemy 是一个值得考虑的库,据我所知,它是最好的 ORM/DB 工具,所有语言都包括在内。
- Tarek Ziadé,Firefox Sync 核心开发人员
我现在很喜欢 #SQLAlchemy 用于 #Python。它为我做了 95% 的繁重工作。“懒惰”编程是最好的!
然后意识到我在 SQLAlchemy 中定义了模式。用它在 PostgreSQL 中重建我的模式。牛逼。我见过的最好的 ORM。在任何语言中。
#sqlalchemy 绝对是最好的 ORM。其他任何语言中的任何其他 ORM 都无法与之相比。
唯一更好的工具包是什么?SQLAlchemy。从现在开始,它几乎是我与 RDBMS 系统交互的唯一方式。我的意思不是说我会将每个 RDBMS 交互写成一个对象关系映射。SQLAlchemy 很棒,因为它提供了一个很好的连接/池化基础设施;一个很好的 Pythonic 查询构建基础设施;然后是一个能够执行复杂查询和映射(以及一些非常简单的查询)的良好 ORM 基础设施。
我已经使用 SQLAlchemy 约两天了,我可以告诉你,它无与伦比。ORM 是我见过的最灵活的 ORM。它简直是魔法。
仅仅片刻,我以为我发现了 SQLAlchemy 做不到的事情。
- S. Lott
作为一个各种 ORM 的用户,并且编写了许多我自己的 ORM,我必须说我对 SQLAlchemy 印象非常深刻……它文档非常完善,并且具有很好的哲学。如果您使用其他任何东西,您应该绝对尝试一下。
- Andy Smith
非常棒,并且可以快速在 Mac 开发环境和 Linux 部署环境中启动。我目前从五个不同服务器上的三个不同数据库(SQLite、PostgreSQL 和 MySql)收集数据。这对我来说是一个杀手级应用。我很快就会探索它的对象关系功能,但我已经非常喜欢这个框架,以及它的轻量级感觉。
- Bruce Kroeze
使用 SQLAlchemy 确实改变了我设计应用程序时对数据库访问的思考方式。