CherryPy-SQLAlchemy makes it easy to use SQLAlchemy within CherryPy apps.
This package was primarily created from Sylvain's SQLAlchemy recipe.
There are two elements of CherryPy-SQLAlchemy
- A CherryPy tool that will create a session for use with each request.
- 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