Usando postgresql en python con psycopg2

May 10, 2020 No Comments by

Si deseamos hacer algunos queries en PostgreSQL desde python, una opción, es usar la librería psycopg2. Y si no tenemos un ambiente PostgreSQL donde jugar, instalemos uno con docker :)

Habilitamos un container de PostgreSQL con Docker

# Creamos un container llamado dev-postgres con la credencial psql postgres:postgres123
docker run --name dev-postgres -p 5432:5432 -e POSTGRES_PASSWORD=postgres123 -d postgres
docker container stop dev-postgres
docker container start dev-postgres
# Accedemos una shell en el container para verificar
docker exec -it dev-postgres /bin/bash
su - postgres
# Creamos una db
createdb example
# Accedemos a la db con el cliente psql
psql example
# Creamos una tabla
CREATE TABLE users ( id BIGSERIAL , name VARCHAR(32) );
# Insertamos un usuario
INSERT INTO users (name) VALUES ('Juanito');
# Nos salimos
\q
exit
exit

Instalación psycopg2

# Instalación usando conda
conda install -c anaconda psycopg2
# Instalación usando pip
pip install pip install psycopg2-binary

Ejemplo de conexión

import psycopg2
try:
    con = psycopg2.connect(user="postgres",
                                password="postgres123",
                                host="localhost",
                                port="5432",
                                database="example")
    cur = con.cursor()
    cur.execute("select * from users")
    records = cur.fetchall() 

    for row in records:
        print(row[0],row[1])

except (Exception, psycopg2.Error) as error :
    print ("Error", error)

finally:
    if(con):
        cur.close()
        con.close()
        print("PostgreSQL connection is closed")

Jupyter python script

Python

About the author

Ingeniero en Informática, Oracle Certified Master Java EE 6 Enterprise Architect, Oracle Certified Professional Java Programmer. Experto en distintas ramas de la computación y otras "yerbas" xD. Si te gusto este post, sígueme en @deerme_org, escríbeme a info AT deerme.org o contactame por linkedin.
No Responses to “Usando postgresql en python con psycopg2”

Leave a Reply


eight + = 9