Conexión entre Python y 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.
Los siguientes son los paquetes necesarios para conectar python con Postgres
sudo apt install python3-postgresql python3-psycopg2 python3-dev python3-pg8000 libapache2-mod-python
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.
nano ~/public_html/postgres.py
El siguiente script se conecta al motor de bases de datos PostgreSQL utilizando el usuario "juaramir" 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="juaramir", 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 ~/public_html/postgres.py
Verificar el funcionamiento desde línea de comandos:
python3 postgres.py
Fuente: https://www.linuxito.com/gnu-linux/nivel-medio/655-linux-apache-python-postgresql