TurboGears – SQLAlchemy
虽然可以在 TurboGears 应用程序中使用 SQL 对任何关系数据库执行 CRUD 操作,但建议使用 SQLAlchemy,这是一个 Python 工具包,是一个功能强大的对象关系映射器,可为应用程序开发人员提供 SQL 的全部功能和灵活性。除了通过 SQLAlchemy 支持基于 SQL 的数据库外,TurboGears 还通过 Ming 支持 MongoDB 数据库。本节将讨论 SQLAlchemy 的功能。
什么是 ORM(对象关系映射)?
大多数编程语言平台都是面向对象的。另一方面,RDBMS 服务器中的数据存储为表。对象关系映射是一种将对象参数映射到底层 RDBMS 表结构的技术。 ORM API 提供了执行 CRUD 操作的方法,而无需编写原始 SQL 语句。
使用 gearbox 工具包中的"quickstart"命令创建 TurboGears 项目时,默认情况下会通过以下配置设置启用 SQLAlchemy 支持 −
config['use_sqlalchemy'] = True config['sqlalchemy.url'] = 'sqlite:///devdata.db'
"quickstarted"项目还在其中创建了一个模型包。例如,"Hello"项目将具有 Hello\hello\model。此包中创建了以下文件 −
__init__.py −这是设置数据库访问的地方。应用程序的模型对象导入到此模块中。它还有一个 DBSession - 一个全局会话管理器和一个 DeclarativeBase,它是所有模型类的基类。
auth.py − 这是定义身份验证堆栈使用的模型的地方。其他数据库模型作为单独的模块存储在此包中,并添加到 __init__.py 中。