Carlos Gustavo Ruiz

“Hola PostgreSQL” (con Python)

Posted on February 18, 2013 by Carlos Gustavo Ruiz in Tutorial

Una de las tareas más frecuentes cuando iniciamos con las bases de datos es cómo conectamos las mismas con nuestros programas. En particular conectarse con PostgreSQL es una tarea bastante simple con Python. Como sabrá en Python buena parte de los elementos del lenguaje se encuentran en las PEP (Python Enhancement Proposals), y en cuanto a las bases de datos esto no es la excepción y la DB API 2.0 se especifica en la PEP-249, siga el vínculo para conocer los detalles. Una de las consecuencias directas de esta normalización del lenguaje es que muy probablemente lo que use para PostgreSQL con este tutorial sea válido para otro gestor de base de datos relacional cuyo conector implemente esta API.

Instalando Psycopg2

Si utiliza Linux prefiera instalar la versión de psycopg2 correspondiente a su distribución, por ejemplo para Fedora sería:

y para Debian sería:

Sin embargo, también puede hacer uso del instalador de Python llamado pip. Este instalador es muy potente, pero debido a que psycopg2 necesitará compilar unos fuentes durante la instalación asegúrese que su computador tenga instaladas las bibliotecas de desarrollo de PostgreSQL y obviamente un compilador. Si todo está bien y tiene los permisos adecuados, bastará escribir en su terminal:

Si utiliza Windows descargue la versión correspondiente para la versión de su Sistema Operativo, su Python y de su PostgreSQL en la página de win-psycopg.

Conectando Python con PostgreSQL

Si todo fue bien con la instalación entonces será sencillo comunicarse con PostgreSQL. Para probar la instalación y la conexión con su gestor de base de datos escriba lo que sigue en su terminal:

En caso de no haber ningun mensaje de error entonces ha instalado correctamente psycopg2. El siguiente paso será conectar con su base de datos, para ello crearemos una base de datos para pruebas.

y luego procedemos a conectar con PostgreSQL desde Python:

Recuerde hacer de su string de conexión (o dsn) adecuado para su configuración: los parámetros de conexión aceptados son: dbname, user, password, host y port, para más detalles ver: psycopg2.connect. En caso de recibir algún error, verifique con su cliente PostgreSQL que la configuración que utilizó para Python esté correcta.

Conversando con PostgreSQL al estilo Python

Dado por sentado que no tuvo problemas de conexión entonces retomamos la sesión interactiva y pasaremos a crear una tabla y llenarla con datos, de modo de mostrar cómo se envían instrucciones mediante la DB API 2.0 de Python al gestor de base de datos:

Ahora vamos a preguntarle algunas cosas a nuestra tabla de goleadores de la vinotinto:

Finalmente con Python debe dejar claro a PostgreSQL que la comunicación se ha terminado, por lo que es necesario cerrar le cursor y la conexión. Es importante este paso, así liberará recursos en su programa y permitirá al gestor de bases de datos liberar la conexión dedicada al programa y usarla para otro usuario.

Pequeño Script de Python con PostgreSQL

Ahora vamos a escribir un pequeño programa con lo aprendido en el diálogo anterior, copie el siguiente programa en un archivo llamado hola_postgres.py:

El programa realiza en la función leer_datos() un despliegue de los jugadores almacenados en la tabla la_vinotinto, en si no reviste de mucha complejidad. Finalmente para ejecutar el programa escriba en su terminal:

Recomendado leer

Obviamente esto es un pequeño abreboca, para profundizar un poco más en las posibilidades que ofrecen estas herramientas es necesario leer un poco más. Sugiero como lecturas complementarias las siguientes páginas.