我可以用 Python 做什么?—— 数据库编程
对于传统的数据库需求,有适合于所有日常使用的关系式数据系统(Sybase, Oracle, Informix, ODBC, MySQL, PostgreSQL, SQLite 还有更多)的 Python 接口。 Python 世界还定义了一个可移植的数据库 API,用来从 Python 脚本访问 SQL 数据库系统,这个脚本在许多底层数据库系统的表面看起来是一样的。比如,因为数据库供应商接口实现了 Python 提供 的可移植 API,在免费的 Mysql 系统工作的脚本将会在其它系统上如 Oracle 上面正常工作,基本上不需要进行修改。一般,你所需要做的一切就是替换底层的供应商接口。嵌套了 SQL 数据库引擎的进程内(与 Python 解释器同进程)的 SQLite 是 Python 2.5 版本后的一个标准部分,支持原型化和基本的程序存储需求。
注意这里的 ODBC 是一个标准,把它跟其它数据库放在一起比较是不合适的。
在非 SQL 领域,Python 的标准 pickle 模块提供了一个简单的对象持久化系统,它允许程序简单的保存所有 Python 对象为文件和类文件对象,反之亦然。在 Web 上,你还将发现名为 ZODB 和 Durus 这些第三方的开源系统,它们为 Python 脚本提供了完整的面向对象数据库系统;其它的,如 SQLObject 和 SQLAlchemy 实现了对象关系式映射(ORMs),它将 Python 的类模型绑定到关系式表格上;还有 PyMongo,一个连接 MongoDB 的接口,一个高性能、非 SQL、开源的 JSON 风格的文本数据库,它以非常类似 Python 本身的列表和字典的结构存储数据,这些数据的文本可以使用 Python 自身的标准库 JSON 模块来解析和创建。
其它系统还提供更专门的方式来存储数据,包括在 Google 的 App Engine 中的数据仓库,它用 Python 类来建模数据,提供了强大的扩展性。其它新兴的云存储可选项有如 Azure、PiCloud、 OpenStack 和 Stackkato。