The power of Hibernate; the ease of Python
简介
SQLAlchemy 主要由两部分组成,一个 SQL 工具包和一个关系对象映射(ORM),它能让开发者完全发挥出 SQL 的灵活性与强大的能量。
他实现了一整套企业级持久层模式,可以通过简单而 Pythonic 的接口,进行高效率和高性能的数据库访问。
设计哲学
当你越关注性能,就会发现 SQL 数据库离对象集合越来越远;当你越关注抽象,就会发现对象集合离表和行这些概念越来越远。SQLAlchemy 将致力于尽量包容这两个世界。
SQLAlchemy 并不把数据库简单地视为数据表的集合;它把它们看作是关系代数引擎。它的关系对象映射能够让类以不同的方式映射到数据库。SQL 工具包也不光能够对数据表进行 select 操作——你还能对连接、子查询和联合进行 select。这样数据库关系和领域对象模型之间的耦合从一开始就得以很好地解开,使得两个领域都得以发挥其各自的极致。
教程&文档
SQLAlchemy指南(官方文档中的教程的中文翻译 by gashero) 在线阅读
Elixir
简介
SQLAlchemy 的 ORM 遵从 DataMapping 设计模式,而 Elixir 则是在 SQLAlchemy 基础上的一层 ActiveRecord 模式的实现,它使用一套类似 RoR 的 ActiveRecord 系统的领域语言语法,从此开发者可以用一种更加简洁的方式对 SQLAlchemy 的强大功能进行访问。
Elixir 是由 ActiveMapper 和 TurboEntity 两个项目发展而来,这两个项目作者最终得出了这样一个完美的实现方案。使用 Elixir,你将拥有更方便的访问接口,同时还能享受绝大部分 SQLAlchemy 的强大功能。
示例
相关链接
Why SQLAlchemy impresses me(使用 sqlalchemy 表达复杂的关联)
Why schema definition belongs in the database (与 sqlalchemy 无关)