py-postgresql

py-postgresql is a project dedicated to improving the Python client interfaces to PostgreSQL.

At its core, py-postgresql provides a PG-API, postgresql.api, and DB-API 2.0 interface for using a PostgreSQL database.

Contents

.. toctree:: :maxdepth: 2

admin driver clientparameters cluster notifyman alock copyman gotchas

Reference

.. toctree:: :maxdepth: 2

bin reference

Changes

.. toctree:: :maxdepth: 1

changes-v1.3 changes-v1.2 changes-v1.1 changes-v1.0

Sample Code

Using postgresql.driver::

import postgresql db = postgresql.open("pq://user:password@host/name_of_database") db.execute("CREATE TABLE emp (emp_name text PRIMARY KEY, emp_salary numeric)")

Create the statements.

make_emp = db.prepare("INSERT INTO emp VALUES ($1, $2)") raise_emp = db.prepare("UPDATE emp SET emp_salary = emp_salary + $2 WHERE emp_name = $1") get_emp_with_salary_lt = db.prepare("SELECT emp_name FROM emp WHERE emp_salay < $1")

Create some employees, but do it in a transaction--all or nothing.

with db.xact(): ... make_emp("John Doe", "150,000") ... make_emp("Jane Doe", "150,000") ... make_emp("Andrew Doe", "55,000") ... make_emp("Susan Doe", "60,000")

Give some raises

with db.xact(): ... for row in get_emp_with_salary_lt("125,000"): ... print(row["emp_name"]) ... raise_emp(row["emp_name"], "10,000")

Of course, if DB-API 2.0 is desired, the module is located at postgresql.driver.dbapi20. DB-API extends PG-API, so the features illustrated above are available on DB-API connections.

See :ref:db_interface for more information.