Conexión entre Python y Postgres
Primero debemos instalar Postgres
Instalación del driver PostgreSQL para conectarse desde Python
Existen varios drivers Python para PostgreSQL, para diferentes plataformas y versiones de Python. El más popular es psycopg, el cual soporta actualmente todas las versiones de Python desde 2.5 hasta 3.4 sobre plataformas Unix y Windows. Pero en mi caso decidí utilizar el driver pg8000, que está desarrollado íntegramente con Python y es liberado con licencia BSD. Además, es el driver utilizado por el framework Web2Py.
Instalar el driver pg8000 desde el gestor de paquetes pip ejecutando:
sudo pip install pg8000
En el sitio oficial existe una buena guía con ejemplos de conexión a PostgreSQL desde Python.
Creación de un script Python para verificar el acceso mediante HTTP
Para lo siguiente, se asume que se utilizo mi manual para configurar el servidor web.
Ahora creamos un script que verifique el acceso a todos los servicios.
sudo nano /usr/lib/cgi-bin/postgres.py
El siguiente script se conecta al motor de bases de datos PostgreSQL utilizando el usuario "pi" para consultar la versión del motor (ejecutando la consulta select version();):
#!/usr/bin/python
# coding=utf-8
# Imprimir los headers HTTP
print("Content-Type: text/html")
print("")
# Imprimir el contenido de la página
print("<h2>Hola mundo</h2>")
print("<p>Prueba de ejecución de script Python en modo CGI.</p>")
# Mostrar la versión de Postgres
import pg8000
con = pg8000.connect(user="pi", password="123456", host="localhost", database="postgres")
c = con.cursor()
c.execute("select version()")
v = "".join(c.fetchone())
print("<p>La versión de PostgreSQL es: <b>%s</b></p>" % v.encode("utf-8"))
Recuerda cambiar los datos por los tuyos.
Guardar los cambios y ajustar los permisos adecuadamente
sudo chmod +x /usr/lib/cgi-bin/postgres.py
Verificar el funcionamiento desde línea de comandos:
sudo /usr/lib/cgi-bin/./postgres.py
Fuente: https://www.linuxito.com/gnu-linux/nivel-medio/655-linux-apache-python-postgresql