================================================= Psycopg -- PostgreSQL database adapter for Python
.. sectionauthor:: Daniele Varrazzo daniele.varrazzo@gmail.com
Psycopg_ is the most popular PostgreSQL_ database adapter for the Python_
programming language. Its main features are the complete implementation of
the Python |DBAPI|_ 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 :sql:INSERT\s or :sql:UPDATE\s.
Psycopg 2 is mostly implemented in C as a libpq_ wrapper, resulting in being
both efficient and secure. It features client-side and :ref:server-side <server-side-cursors> cursors, :ref:asynchronous communication <async-support> and :ref:notifications <async-notify>, :ref:COPY <copy>
support. Many Python types are supported out-of-the-box and :ref:adapted to matching PostgreSQL data types <python-types-adaptation>; adaptation can be
extended and customized thanks to a flexible :ref:objects adaptation system <adapting-new-types>.
Psycopg 2 is both Unicode and Python 3 friendly.
.. _Psycopg: https://psycopg.org/ .. _PostgreSQL: https://www.postgresql.org/ .. _Python: https://www.python.org/ .. _libpq: https://www.postgresql.org/docs/current/static/libpq.html
.. rubric:: Contents
.. toctree:: :maxdepth: 2
install usage module connection cursor advanced extensions extras errors sql tz pool errorcodes faq news license
.. ifconfig:: builder != 'text'
.. rubric:: Indices and tables
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
.. ifconfig:: todo_include_todos
.. note::
**To Do items in the documentation**
.. todolist::