forked from kgaughan/dbkit
/
README
56 lines (42 loc) · 1.7 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
=====
dbkit
=====
:Author:
Keith Gaughan (http://stereochro.me)
:Repo:
https://github.com/kgaughan/dbkit
:Documentation:
http://dbkit.readthedocs.org/
**dbkit** is a library that abstracts away at least part of the pain
involved in dealing with `DB-API 2`_ compatible database drivers.
.. image:: https://secure.travis-ci.org/kgaughan/dbkit.png?branch=master
:width: 89px
:height: 13px
:target: http://travis-ci.org/kgaughan/dbkit
Overview
========
*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.
Features:
- 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
details.
- Database contexts contain references to the exceptions exposed by the
database driver, thus decoupling exception handling from the database
driver.
- 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.
Non-aims:
- 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.
.. _DB-API 2: http://www.python.org/dev/peps/pep-0249/
.. _SQLObject: http://sqlobject.org/
.. _SQLAlchemy: http://sqlalchemy.org/
.. _context: http://docs.python.org/library/contextlib.html