跳转到主要内容

将pyramid上下文加载到SQLAlchemy模型中。

项目描述

rebecca.sqla

rebecca.sqla 是一个用于加载由SQLAlchemy制作的模型的实用工具。

安装

使用pip或easy_install进行安装

$ pip install rebecca.sqla
$ easy_install rebeca.sqla

用法

rebecca.sql 需要 sqlalchemy.orm.scoped_session

在设置中指定会话对象和dsn字符串

sqlalchemy.url = 'sqlite:///'
rebecca.sqla.session = your.app.models.DBSession

rebecca.sqla 具有包含钩子

config.include("rebecca.sqla")

此钩子设置DBSession的bind配置为sqlalchemy.url

ModelLoaderSAContext

rebecca.sqlarequest.context中创建名为“sa”的属性。 context.sa 是从通过config.add_model_loader注册的ModelLoader加载模型的SAContext

以下是示例模型

class Person(Base):
    __tablename__ = 'person'
    id = Column(Integer, primary_key=True)
    name = Column(Unicode(255))

以及示例路由

config.add_route('person', '/person/{person1_id}/{person2_id}')

注册模型加载器

config.add_model_loader('person1', Person, [('person1_id', 'id')])
config.add_model_loader('person2', Person, [('person2_id', 'id')])

add_model_loader 接收3个参数。第一个是SAContext的属性名,第二个是从ModelLoader加载的模型,最后是与模型属性匹配的映射。

第二个参数可以是点分名称。

在视图中,上下文有一个名为“sa”的属性,该属性具有已注册模型的属性。 ModelLoader 使用匹配字典参数通过查询加载模型。

def person(context, request):
    person1 = context.sa.person1
    person2 = context.sa.person2

贡献者

  • Atsushi Odagiri,原作者

变更日志

0.1 (2013-03-14)

  • 首次发布

项目详情


下载文件

下载适用于您平台文件的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

rebecca.sqla-0.1.tar.gz (6.4 kB 查看哈希值)

上传于

支持