Psycopg is the most popular PostgreSQL database adapter for the Python programming language. Its main features are the complete implementation of the Python DB API 2.0 specification and the thread safety (several threads can share the same connection). 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.
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 byte strings and Unicode), numbers (ints, longs, floats, decimals), booleans and date/time 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 hstore, between tuples/namedtuples and PostgreSQL composite types, and between Python objects and JSON.
Psycopg 2 is both Unicode and Python 3 friendly.
Contents
Indices and tables