Revision 33 as of 2006-09-05 11:21:42

Clear message


See also HigherLevelDatabaseProgramming

DBMS interfaces

Things you connect to.

Take a look at and




See ["Oracle"] for details, there are two choices:


module developed by Dave Cole





Native Python Databases


Gadfly is a simple relational database system implemented in Python based on the SQL Structured Query Language. Currently use C-extension module for speed. Pure Python version included.


SnakeSQL is a pure Python SQL database written to remove the dependence of the Python Web Modules on 3rd party drivers for non-Python databases like MySQL but designed to be a useful database in its own right.

ZODB Zope Object DB


A [ shelf] is a persistent, dictionary-like object. The difference with dbm databases is that the values (not the keys!) in a shelf can be essentially arbitrary Python objects -- anything that the [ pickle] module can handle. This includes most class instances, recursive data types, and objects containing lots of shared sub-objects. The keys are ordinary strings.


Datafiles interfaces

Things you open.


Which stands for .dbf files interface.BR .dbf files were produced by several old systems like dBase(II,III,IV), Fox(Base,Pro)


A family of old unix plain hash tables. Has varieties like dbm, ndbm, gdbm, dbmdb185.BR See [ anydbm], [ dumbdbm], [ dbhash], [ bsddb], [ dbm], [ gdbm] in Python Standard Library.



Actualy it's a full-fleged SQL server, but embeddable. No external SQL server required. Think of Gadfly, only faster.

XML Databases or Interfaces


[ Forest] is a (native) XML database written in Python. It is intended to support fast queries of XML data.


Object-Relational Mappers

[ SQLObject] is an object-relational mapper. It allows you to translate RDBMS table rows into Python objects, and manipulate those objects to transparently manipulate the database.

[ ORM] The Object Relational Membrane is a Python package that provides the functionality of an object relational layer like EJB or other persistence storage systems. It is a thin compatibility layer between SQL table layouts and Object Oriented Python. While providing a good deal of functionality, it tries to be as small and simple as possible. It works with PostgreSQL and MySQL.

[ QLime] Easy to use, transparent data access to relational databases or other data sources. See examples here:

See also HigherLevelDatabaseProgramming.

Special file interface

Unable to edit the page? See the FrontPage for instructions.