Differences between revisions 1 and 28 (spanning 27 versions)
Revision 1 as of 2002-07-12 20:24:23
Size: 101
Editor: cache-1
Comment:
Revision 28 as of 2006-09-19 15:44:23
Size: 2810
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Python supports the creation of BusinessObjectModels using tools such as PyDo. Are there others? There are several wrappers that provide improved or simplified interfaces to SQL databases. Some of these might be referred to as ``object relational mappers``, or ORM in this list -- these create Pythonic objects out of database rows. Others may only help generate SQL, or provide simple mapping support.

= Object Relational Mappers (ORMs) =

 * DbObj: ORM
 * [http://forgetsql.sourceforge.net/ forgetSQL]: ORM
 * MiddleKit: ORM
 * [http://modeling.sourceforge.net/ Modeling Object-Relational Bridge]: ORM and schema design with Zope integration
 * [http://orm.nongnu.org/ Object Relational Membrame] ([http://freshmeat.net/projects/orm/ Freshmeat entry]): ORM
 * PyDo: ORM
 * [http://sqlobject.org/ SQLObject]: ORM
 * [http://www.sqlalchemy.org/ SQLAlchemy]: ORM toolkit
 * [http://www.nongnu.org/bazaar/ Bazaar ORM]: Easy to use and powerful abstraction layer between relational database and object oriented application.

= SQL Wrappers & Generators =

 * [http://opensource.theopalgroup.com/ db_row]: SQL result wrapper
 * [http://www.livinglogic.de/Python/sql/ ll.sql]: SQL generator
 * PgResultSet: built-in facility for column access by name for pyPgSQL and PySQLite
 * [http://pdo.neurokode.com PDO]: Python Database Objects - allows use of most DBAPI modules with a clean, simple API similar in scope to ADO or JDBC. Column access by name is provided by a low overhead mechanism.
 * The PythonWebModules web.database module - Database abstraction layer to make it possible to run the same SQL on different databases without changing your code.
 * The PythonWebModules web.database.object module - Object relational mapper - treat an SQL database like python objects for easy programming, the SQL is done behind the scenes. Supports one and many to many mappings and can generate HTML forms for the data automatically.
 * [http://py.vaults.ca/apyllo2.py/D21777795 SQLBuilder]: SQL generator
 * [http://dustman.net/andy/python/SQLDict SQLDict]: SQL wrapper
 * [http://roundup.sf.net/ Roundup's hyperdb]: set of constrained data types with relations (many-to-many included) over multiple backends including SQL, metakit and db (yes, relations in an anydbm-backed database :)
 * QLime ([http://freshmeat.net/projects/qlime/ Freshmeat entry]): Easy to use, transparent data access to relational databases or other data sources. See examples here: http://www.qlime.org/example.rst '''Note: qlime.org does not currently provide the QLime site'''
 * [http://lists.canonical.org/pipermail/kragen-hacks/2004-April/000394.html prototype SchemQL/Roe-like thing in Python] --- Python objects representing relational algebra expressions, backed by lazy compilation to SQL and an iterable interface.
 * PyTable

See also Thinki:PersistenceSystems and Thinki:ObjectOrientedDatabase

There are several wrappers that provide improved or simplified interfaces to SQL databases. Some of these might be referred to as object relational mappers, or ORM in this list -- these create Pythonic objects out of database rows. Others may only help generate SQL, or provide simple mapping support.

Object Relational Mappers (ORMs)

SQL Wrappers & Generators

See also PersistenceSystems and ObjectOrientedDatabase

HigherLevelDatabaseProgramming (last edited 2018-02-01 18:11:05 by EtienneRobillard)

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