Skip to main content
Help us improve PyPI by participating in user testing. All experience levels needed!

Fresco/SQLAlchemy integration

Project description

Adding SQLAlchemy to your application

Use fresco_sqlalchemy.SQLAlchemy to configure your application for use with SQLAlchemy. By default this reads database connection configuration from app, and adds WSGI middleware into your application to manage SQLAlchemy sessions:

from fresco import FrescoApp
from fresco_sqlalchemy import SQLAlchemy

# Create a new Fresco app
app = FrescoApp()

# Connection info is loaded from your application configuration
app.options.SQLALCHEMY = {
    'default': 'driver://user:password@localhost/database',
}

sqlalchemy = SQLAlchemy(app)

You can call your configuration variable something else if you prefer:

app.options.DATABASES = {
    'default': 'driver://user:password@localhost/database',
}
sqlalchemy = SQLAlchemy(app, options_key='DATABASES')

Or skip this step entirely and provide database configuration directly to the constructor:

sqlalchemy = SQLAlchemy(
    app,
    databases={'default': 'driver://user:password@localhost/database',})

Accessing sessions

You can access sqlalchemy sessions directly on the SQLAlchemy object:

sqlalchemy = SQLAlchemy(app)
session = sqlalchemy.getsession()
session.query(...)

Or via fresco.context:

from fresco import context
session = context.sqlalchemy.default
session.query(...)

Multiple connection support

You can specify as many database connection URLs as you want:

app.options.SQLALCHEMY = {
    'staging': 'driver://user:password@localhost/staging_db',
    'production': 'driver://user:password@localhost/production_db',
}

These can be accessed by name, using getsession:

sqlalchemy = SQLAlchemy(app)
sqlalchemy.getsession('staging')

Or from fresco.context:

default_session = context.sqlalchemy.staging
cms_session = context.sqlalchemy.production

Engine configuration

Extra arguments to the SQLAlchemy constructor are passed to SQLAlchemy’s create_engine function. This makes it possible to specify options such as echo=True to log all SQL queries produced by SQLAlchemy:

sqlalchemy = SQLAlchemy(app, echo=True)

0.1 (released 2016-06-30)

  • Initial release

Project details


Release history Release notifications

This version
History Node

0.1

History Node

0

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
fresco-sqlalchemy-0.1.tar.gz (4.9 kB) Copy SHA256 hash SHA256 Source None Jun 30, 2016

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page