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.

Files for rebecca.sqla, version 0.1
Filename, size File type Python version Upload date Hashes
Filename, size rebecca.sqla-0.1.tar.gz (6.4 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page