Psycopg – PostgreSQL database adapter for Python

Psycopg is a PostgreSQL database adapter for the Python programming language. Its main features are that it supports the full Python DB API 2.0 and it is thread safe (threads can share the connections). It was designed for heavily multi-threaded applications that create and destroy lots of cursors and make a large number of concurrent INSERTs or UPDATEs. The Psycopg distribution includes ZPsycopgDA, a Zope Database Adapter.

Psycopg 2 is mostly implemented in C as a libpq wrapper, resulting in being both efficient and secure. It features client-side and server-side cursors, asynchronous communication and notifications, COPY TO/COPY FROM support, and a flexible objects adaptation system. Many basic Python types are supported out-of-the-box and mapped to matching PostgreSQL data types, such as strings (both bytes and Unicode), numbers (ints, longs, floats, decimals), booleans and datetime objects (both built-in and mx.DateTime), several types of binary objects. Also available are mappings between lists and PostgreSQL arrays of any supported type, between dictionaries and PostgreSQL hstores, and between tuples/namedtuples and PostgreSQL composite types.

Psycopg 2 is both Unicode and Python 3 friendly.

Contents

Indices and tables

Next topic

Basic module usage

This Page