将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。
ModelLoader 和 SAContext
rebecca.sqla 在request.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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0f3a87e2186137d43b603cbc60658e1da48f5ea86aa79220bf2bb080cd70a911 |
|
MD5 | 884a34101d698c4e822dc206daad2511 |
|
BLAKE2b-256 | d731d01c98a389e167283c45032212ab401adb715248f07dab6b649b754fa965 |