Skip to main content

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


Download files

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

Source Distribution

fresco-sqlalchemy-0.1.tar.gz (4.9 kB view details)

Uploaded Source

File details

Details for the file fresco-sqlalchemy-0.1.tar.gz.

File metadata

File hashes

Hashes for fresco-sqlalchemy-0.1.tar.gz
Algorithm Hash digest
SHA256 7e852801e8f6f6edcf3d93bc11531ee68ded49c33dac7f074448a2dca33ba776
MD5 1c7c45e192b395da7fd5bc4dd8652b27
BLAKE2b-256 0d2e4593294c1ff7c951c66d3cfaf8145621d3b38be12e1f5d55111b50697ebf

See more details on using hashes here.

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