Skip to main content

pyramid context to load SQLAlchemy model.

Project description

rebecca.sqla

rebecca.sqla is utility to load model made on SQLAlchemy.

INSTALL

Install using pip or easy_install:

$ pip install rebecca.sqla
$ easy_install rebeca.sqla

USAGE

rebecca.sql needs sqlalchemy.orm.scoped_session.

specify session object and dsn string in settings:

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

rebecca.sqla has include hook:

config.include("rebecca.sqla")

this hook sets up the bind configuration of DBSession to sqlalchemy.url.

ModelLoader and SAContext

rebecca.sqla creates attribute named “sa” to request.context. context.sa is SAContext to load models from ModelLoader registered by config.add_model_loader.

here is example models:

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

and example route:

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

register model loaders:

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

add_model_loader takes 3 arguments. first is attr name of SAContext, second is a model loaded from ModelLoader and last is mappings that matchdict param to model attribute.

second argument can be dotted name.

in view, context has SAContext named “sa” attribute, that has properties of registered models. ModelLoader s load model with query using matchdict parameters.

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

Contributors

  • Atsushi Odagiri, Original Author

Changelog

0.1 (2013-03-14)

  • first release

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rebecca.sqla-0.1.tar.gz (6.4 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page