Usando el driver psycopg con PostgreSQL 8.3 (Ubuntu server 8.04LTS)

in

Python no es tan apreciado solamente por su sintaxis y facilidad al programar, sino que también porque está muy bien hecho. La conexión a las bases de datos no son una excepción ya que sólo necesitas especificar el driver junto a los datos necesarios.

Escribo esto porque creo que era necesario una actualización de contenidos y, además, para ser un poco más específico al enseñar a realizar consultas a PostgreSQL. Para mis pruebas tengo instalado Ubuntu server 8.04 LTS (Long Term Support); los materiales que usé en esta demostración fueron:

* PostgreSQL 8.3.8
* Python 2.5.2
* psycopg 1.1.21

Los cuales los instalas con apt-get install python-psycopg postgresql-8.3 o de la forma que más te acomode. La base de datos tendrá el siguiente esquema:

$ createdb test
$ psql test
Bienvenido a psql 8.3.8, la terminal interactiva de PostgreSQL.

Digite: \copyright para ver los términos de distribución
\h para ayuda de órdenes SQL
\? para ayuda de órdenes psql
\g o punto y coma («;») para ejecutar la consulta
\q para salir

test=> CREATE TABLE persona (
nombre varchar(200),
apellido varchar(200),
identificador bigserial PRIMARY KEY
);

test=> INSERT INTO persona (nombre, apellido) values('Juan', 'Marambio');
INSERT 0 1
test=> INSERT INTO persona (nombre, apellido) values('Bernardita', 'Sepulveda');
INSERT 0 1
test=> SELECT * from persona;
nombre | apellido | identificador
-----+-------+---------------
Juan | Marambio | 1
Bernardita | Sepulveda | 2
(2 filas)

** Nombres y apellidos son inventados, cualquier similaritud es sólo coincidencia

Ahora, solo abre tu editor de texto favorito y escribe lo siguiente:

## Inicio Codigo Python
from psycopg import connect
conexion = connect("user=mi_usuario password=mi_password dbname=mi_db")
cursor = conexion.cursor()
sql = """
SELECT initcap(nombre ||' '|| apellido) AS nombre_completo
FROM persona
ORDER BY apellido DESC
"""
cursor.execute(sql)
for resultado in cursor.dictfetchall():
print resultado['nombre_completo']
## Fin codigo

Y voilá!!

Back to top

Powered by drupal | Diseño de plantilla gracias a www.psql.it