Switch branches/tags
Find file
Fetching contributors…
Cannot retrieve contributors at this time
70 lines (51 sloc) 2.24 KB
.. image::
**dbkit** is a library that abstracts away at least part of the pain
involved in dealing with `DB-API 2`_ compatible database drivers.
Here's an example::
from dbkit import connect, query
from contextlib import closing
import sqlite3
with connect(sqlite3, 'counters.db') as ctx, closing(ctx):
for counter, value in query('SELECT counter, value FROM counters'):
print "%s: %d" % (counter, value)
*dbkit* is intended to be used in circumstances where it is impractical
or overkill to use an ORM such as `SQLObject`_ or `SQLAlchemy`_, but it
would be useful to at least abstract away some of the pain involved in
dealing with the database.
- Rather than passing around database connections, statements are executed
within a database `context`_, thus helping to decouple modules that
interface with the database from the database itself and its connection
- Database contexts contain references to the exceptions exposed by the
database driver, thus decoupling exception handling from the database
- Easier to use transaction handling.
- Easier iteration over resultsets.
- Connection pooling. In addition, any code using pooled connections has
no need to know connection pooling is in place.
- Query logging.
- Abstraction of SQL statements. The idea is to get rid of the more
annoying but necessary boilerplate code involved in dealing with
`DB-API 2`_ drivers, not to totally abstract away SQL itself.
*dbkit* can be installed with either either pip_ (recommended)::
$ pip install dbkit
Or with easy_install_::
$ easy_install dbkit
The repos can be found on `Github <>`_ while
the documentation can be found on `Read the Docs
.. _DB-API 2:
.. _SQLObject:
.. _SQLAlchemy:
.. _context:
.. _pip:
.. _easy_install: