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 | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.