PostgreSQL Client Mixins

Sprockets mixins that automatically connects to PostgreSQL using sprockets.clients.postgresql.

Handlers implementing one of the mixins should set an attribute called DBNAME that specifies the database name to connect to. The value of DBNAME will be passed into the creation of the Session or TornadoSession object.

The Session classes wrap the Queries Session or TornadoSession providing environment variable based configuration.

The environment variables should be set using the DBNAME_[VARIABLE] format where [VARIABLE] is one of HOST, PORT, DBNAME, USER, and PASSWORD.

class sprockets.mixins.postgresql.AsyncHandlerMixin

A asynchronous Tornado handler mixin for connecting to PostgreSQL. The mixin automatically creates the database session using the DBNAME attribute of the class as the database name for the TornadoSession object creation.

Using the mixin, the name of the session attribute will be <dbname>_session, automatically created when initializing the object.

Example:

from sprockets.mixins import postgresql
from tornado import web


class FooRequestHandler(postgresql.AsyncHandlerMixin,
                        web.RequestHandler):

    DBNAME = 'foo'

    @web.asynchronous
    def get(self, *args, **kwargs):
        result = yield self.foo_session.query('SELECT * FROM bar')
        self.finish({'data': result.items()})
        result.free()
class sprockets.mixins.postgresql.HandlerMixin

A handler mixin for connecting to PostgreSQL. The mixin automatically creates the database session using the DBNAME attribute of the class as the database name for the Session object creation.

Using the mixin, the name of the session attribute will be <dbname>_session, automatically created when initializing the object.

Example:

from sprockets.mixins import postgresql
from tornado import web


class FooRequestHandler(postgresql.HandlerMixin,
                        web.RequestHandler,):

    DBNAME = 'foo'

    def get(self, *args, **kwargs):
        result = self.foo_session.query('SELECT * FROM bar')
        self.finish({'data': result.items()})