特性与哲学
SQLAlchemy 概述。
用户对 SQLAlchemy 的评价
SQLAlchemy 可能是我用过的唯一一个库,在使用过程中我从未遇到“等等,我需要做某事但却做不到”的情况。我必须处理的每一个奇怪的边缘情况都得到了原生支持,或者能够以清晰的方式直接访问原始接口。非常棒的库,强烈推荐。
一个非常稳固,甚至可以说是独特的库,据我所知,它完全解决了“阻抗失配”的争论。如果您以结构化的方式直接使用数据库 API,那么您可能已经重新实现了 sqlalchemy core,并且将您的程序重构为使用 sqlalchemy 将为您提供 ORM(如果您需要的话),并使您的代码在不同的数据库实现之间具有可移植性,即使您不需要 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 经历了多次战斗后,对 ORM 失去了信心。SQLAlchemy 重建了我的信心。ORM 就应该这样做。
- Jan-Erik Strøm
有很多 Python 库/框架我们可以使用,其中一些库/框架在编写 Web 服务方面具有很大的优势。SQLAlchemy 就是其中之一,据我所知,它是所有语言中最好的 ORM/数据库工具之一。
- Tarek Ziadé,Firefox Sync 核心开发者
现在非常喜欢 #Python 的 #SQLAlchemy。它为我完成了 95% 的繁重工作。“懒惰”编程是最好的!
然后意识到我在 SQLAlchemy 中定义了模式。用它在 PostgreSQL 中重新创建了我的模式。Booyah。我见过的最好的 ORM。在任何语言中都是。
#sqlalchemy 绝对是最好的 ORM。任何其他语言的任何其他 ORM 都无法与之媲美。
唯一更好的工具包?SQLAlchemy。从现在开始,它几乎是我与 Python 中的 RDBMS 系统交互的唯一方式。我不是说我会将每个 RDBMS 交互都编写为对象关系映射。SQLAlchemy 很棒,因为它提供了良好的连接/池化基础设施;良好的 Pythonic 查询构建基础设施;然后是一个能够处理复杂查询和映射(以及一些非常简单的查询和映射)的良好 ORM 基础设施。
我已经使用 SQLAlchemy 大约两天了,我可以告诉你,它是无与伦比的。ORM 是我见过的最灵活的。它简直太神奇了。
就在那一刻,我以为我找到了 SQLAlchemy 做得不完美的地方。
- S. Lott
作为各种 ORM 的用户,并且编写了很多我自己的 ORM,我不得不说 SQLAlchemy 给我留下了深刻的印象……它的文档非常出色,并且具有伟大的哲学。如果您正在使用其他任何东西,您绝对应该尝试一下这个。
- Andy Smith
非常棒,并且在我的 Mac 开发和 Linux 部署环境中非常容易上手。我目前正在从五个不同服务器上的三个不同数据库(SQLite、PostgreSQL 和 MySql)收集数据。这对我来说是一个杀手级应用。我很快将探索它的对象关系功能,但我已经非常喜欢这个框架,以及它的轻量级感觉。
- Bruce Kroeze
使用 SQLAlchemy 确实改变了我设计应用程序时对数据库访问的看法。