- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用SQLAlchemy剖析
使用 SQLAlchemy
下一代 Python 对象关系映射器
developerWorks
文档选项
将打印机的版面设置成横向打印模式
打印本页
将此页作为电子邮件发送
将此页作为电子邮件发送
样例代码
英文原文
英文原文
级别: 中级
Noah Gift, 软件工程师, Giftcs
2008 年 10 月 23 日
SQLAlchemy 是下一代的 Python Object Relational 映射器。通过本文您将了解如何使用新的 0.5 API、与第三方组件协作,并构建一个基本的 Web 应用程序。
简介
对象关系映射器(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 和他的核心开发人员团队开发的一个单独的项目。使用 ORM 等独立 SQLAlchemy 的一个优势就是它允许开发人员首先考虑数据模型,并能决定稍后可视化数据的方式(采用命令行工具、Web 框架还是 GUI 框架)。这与先决定使用 Web 框架或 GUI 框架,然后再决定如何在框架允许的范围内使用数据模型的开发方法极为不同。
什么是 WSGI?
WSGI 是下一代 Python Web 框架、应用程序和服务器应该遵循的规范。WSGI 中一个有趣的方面是创建 Python 中间件,并在使用 Python 或任何语言创建的 Web 应用程序中使用。请参阅 参考资料,获取关于 WSGI 和 WSGI 社区(Pypefitters)的大量链接。
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。在本文中,我们将学习一篇关于新 0.5 API 的教程,探究一些第三方库,以及如何在 Pylons 中使用它们。
谁是 Mike Bayer?
Michael Bayer 是居住在纽约的一名软件承包商,他拥有十余年处理各类关系数据库的经验。他曾使用 C、Java? 和 Perl 编写了许多自主研发的数据库抽象层,并在 Major League Baseball 与大量多服务器 Oracle 系统打了多年交道,借助这些经验,他成功编写了 “终极工具包” SQLAlchemy,用于生成 SQL 和处理数据库。其目标是贡献一个世界级、独树一帜的面向 Python 的工具包,以帮助 Python 成为一个广泛普及的编程平台。
安装
本文假定您使用 Python 2.5 或更高版本,并且安装了子版本。Python 2.5 包括 SQLite 数据库,因此也是测试 SQLALchemy 内存的好工具。如果您已经安装了 Python 2.5,则只需通过设置工具安装 sqlalchemy 0.5 beta 。要获取设置工具脚本,请在您的终端中下载并运行以下 4 条命令:
wget /dist/ez_setup.py
python ez_setup.py
sudo easy_install /sqlalchemy/trunk
sudo easy_install ipython
前三行代码检查最新版本的 sqlalchemy,并将它作为包添加到您本地系统的 Python 安装中。最后一个
文档评论(0)