模組簡介
對象關係映射器(Object Relational Mappers,ORM)在過去數年吸引了不少人的目光。主要原因是 ORM 經常會在 Web 應用程式框架中被提起,因為它是快速開發(Rapid Development)棧中的關鍵組件。Django 和 Ruby on Rails 等 Web 框架採用了設計一個獨立棧的方法,將自主開發的 ORM 緊密集成到該框架中。而其他框架,如 Pylons、Turbogears 和 Grok,則採用更加基於組件的架構結合可交換的第三方組件。兩種方法都有各自的優勢:緊密集成允許非常連貫的體驗(如果問題映射到框架),而基於組件的架構則允許最大的設計靈活性。但是,本文的主題並不是 Web 框架;而是 SQLAlchemy。
主要套用
SQLAlchemy 在構建在 WSGI 規範上的下一代 Python Web 框架中得到了廣泛套用,它是由 Mike Bayer 和他的核心開發人員團隊開發的一個單獨的項目。使用 SQLAlchemy等獨立 ORM 的一個優勢就是它允許開發人員首先考慮數據模型,並能決定稍後可視化數據的方式(採用命令行工具、Web 框架還是 GUI 框架)。這與先決定使用 Web 框架或 GUI 框架,然後再決定如何在框架允許的範圍內使用數據模型的開發方法極為不同。
SQLAlchemy 的一個目標是提供能兼容眾多資料庫(如 SQLite、MySQL、Postgres、Oracle、MS-SQL、SQLServer 和 Firebird)的企業級持久性模型。SQLAlchemy 正處於積極開發階段,當前最新的 API 將圍繞版本 0.5 設計。請參閱參考資料部分,獲取官方 API 文檔、教程和 SQLAlchemy 書籍的連結。
SQLAlchemy 取得成功的一個證明就是圍繞它已建立了豐富的社區。針對 SQLAlchemy 的擴展和外掛程式包括:declarative、Migrate、Elixir、SQLSoup、django-sqlalchemy、DBSprockets、FormAlchemy 和 z3c.sqlalchemy。