miércoles, 6 de abril de 2011

Cómo conectar Postgres y Python en Ubuntu

Suponemos que tenemos instalado postgresql y python. Aquí vamos a utilizar la clásica interfaz PyGreSQL que nos proporciona el módulo pg de python.

A parte de postgresql, vamos a necesitar estos dos paquetes:
$ sudo apt-get install python-dev
$ sudo apt-get install build-essential

Y por último
$ sudo easy_install PyGreSQL
Con ésto, deberíamos poder crear nuestro script, y conectarnos a la base de datos postgresql.

Lo probamos, debemos tener una base de datos creada así cómo una tabla y algún dato que recuperar.
#!/usr/bin/env python

import pg

usuario = 'usuario'
base = 'nombre_base_de_datos'
passw = 'password'
conecta = pg.connect(dbname=base,user=usuario,passwd=passw)
consulta = 'select * from nombre_tabla'
resultado = conecta.query(consulta)
print resultado
conecta.close()   
Si todavía no hemos configurado la lista de acceso, nos mostrará un error como éste:
FATAL: la autentificación Ident falló para el usuario «x»

en ese caso éste será el momento de configurar la lista de autenticación. Ésto lo encontramos en la ruta: /etc/postgresql/8.4/main/pg_hba.conf

Editamos el fichero
sudo nano /etc/postgresql/8.2/main/pg_hba.conf
y modificamos la siguiente línea,
# "local" is for Unix domain socket connections only
local all all ident
por
# "local" is for Unix domain socket connections only
local all all md5

Ejecutamos
python conectdb.py

Con ésto tenemos una conexión a la base de datos, recogemos la consulta y la mostramos por pantalla.

No hay comentarios:

Publicar un comentario