Gnu/Linux‎ > ‎Programación‎ > ‎

Conexión entre Python y Postgres

publicado a la‎(s)‎ 8 ago. 2017 7:33 por Juan Jose Ramirez Lama   [ actualizado el 21 ago. 2017 8:16 ]

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&oacute;n de script Python en modo CGI.</p>")

# Mostrar la versi&oacute;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&oacute;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
Comments