CherryPy-SQLAlchemy

Use SQLAlchemy with CherryPy


Keywords
cp_sqlalchemy
License
BSD-3-Clause
Install
pip install CherryPy-SQLAlchemy==0.5.3

Documentation

CherryPy-SQLAlchemy

https://pypip.in/d/cp_sqlalchemy/badge.png

CherryPy-SQLAlchemy makes it easy to use SQLAlchemy within CherryPy apps.

Credits

This package was primarily created from Sylvain's SQLAlchemy recipe.

Basic Usage

There are two elements of CherryPy-SQLAlchemy

  1. A CherryPy tool that will create a session for use with each request.
  2. A CherryPy plugin that can maintains information about the database and binds the session to the specific DB.

Here is an example connecting to a sqlite db:

import cherrypy

from app import Root
from app.models import ORMBase
from cp_sqlalchemy import SQLAlchemyTool, SQLAlchemyPlugin


def run():
    cherrypy.tools.db = SQLAlchemyTool()
    cherrypy.tree.mount(Root(), '/', {
        '/': {
            'tools.db.on': True
        }
    })

    SQLAlchemyPlugin(
        cherrypy.engine, ORMBase, 'sqlite:////path/to/file.db'
    )

    cherrypy.engine.start()
    cherrypy.engine.block()

One thin to note is the ORMBase we imported is sqlalchemy.ext.declarative.declarative_base() that was used when creating models.

From there, each request will have access to cherrypy.request.db, which is an instance of a SQLAlchemy session.

There is a more complete example.py in the source.

  • Free software: BSD license