Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

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(
    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()

Or via fresco.context:

from fresco import context
session = context.sqlalchemy.default

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)

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

Release History

This version
History Node


History Node


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
(4.9 kB) Copy SHA256 Hash SHA256
Source None Jun 30, 2016

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers DreamHost DreamHost Log Hosting