Metadata-Version: 1.1
Name: fresco-sqlalchemy
Version: 0.1
Summary: Fresco/SQLAlchemy integration
Home-page: https://bitbucket.org/ollyc/fresco-sqlalchemy
Author: Oliver Cope
Author-email: oliver@redgecko.org
License: BSD
Description: SQLAlchemy support for Fresco
        =============================
        
        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
        
Platform: UNKNOWN
Classifier: License :: OSI Approved :: BSD License
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.3
