Python – Conexión a base de datos PostgreSQL

Antes de comenzar una conexión a una base de datos PostgreSQL en Python, se debe importar el conector MySQL. En nuestros ejemplos, usaremos Visual Studio Code, que es uno de los editores más poderosos y ampliamente utilizados para desarrollar en Python.

» Más ejemplos de Python

Generar proyecto en Visual Studio Code (VSC)

Comenzaremos generando una carpeta nueva con el nombre de ejemplo «ConexionPostgreSQL». Dentro de la terminal de VSC ejecutaremos los siguientes comandos para crear y activar el entorno virtual en python3.

Crear entorno virtual:

virtualenv -p python3 env

Si se ejecutó correctamente, notaremos que se generó una carpeta nueva con el nombre de «env».

Activar entorno virtual:

source env/bin/activate

Notaremos que se ha activado cuando aparezca (env) en el prompt al inicio de nuestro nombre de usuario, algo como lo siguiente:
(env) decodigo@decodigo:~/Documentos/python/ConexionPostgreSQL$

Instalar controladores

Antes de instalar los controles necesarios, debemos crear una carpeta nueva con el nombre «src» y dentro de ella generar el archivo «conexion_postgresql.py».

Después, en la terminal de VSC con el entorno activado, ejecutaremos los siguientes comandos para instalar los conectores necesarios:

pip install psycopg2

Si obtuviste un error como: ERROR: Failed building wheel for psycopg2, puedes solucionarlo ejecutando el siguiente comando y probando nuevamente:

sudo apt-get install gcc libpq-dev python3-dev

Puedes comprobar que se haya instalado de forma correcta con el siguiente comando:

pip list
Package        Version
----------------     -----------
pip                   22.0.2
psycopg         2 2.9.5
setuptools     59.6.0
wheel              0.37.1

Finalmente agregamos el código, recuerda que los parámetros cambian dependiendo del usuario, contraseña y base de datos que usarás.

import psycopg2

# decodigo.com

try:
    connection=psycopg2.connect(
        host='localhost',
        user='usuario',
        password='password',
        database='base_datos',
    )

    print("Consulta exitosa")
    cursor=connection.cursor()
    cursor.execute("SELECT * FROM usuarios")
    rows=cursor.fetchall()
    for row in rows:
        print(row)
except Exception as ex:
    print(ex)
finally:
    connection.close()
    print("Conexion terminada.")
Conexión a base de datos PostgreSQL

Configuración de la base de datos

Para configurar la base de datos necesitaremos acceder a PostgreSQL desde la terminal de Linux con los siguientes comandos:

sudo su - postgres

Y posteriormente cuando el prompt haya cambiado, ejecutaremos el siguiente código para acceder:

psql

Generar usuario y base de datos:

Dentro de PostgreSQL crearemos un usuario nuevo para administrar la base de datos, podrás definir el usuario y la contraseña que gustes:

create user nombre with password 'password';

Después crearemos la base de datos y definimos el usuario que la va a administrar, que es el que creamos anteriormente :

create database base_datos with owner nombre;

Finalmente le damos permisos de super administrador a nuestro usuario nuevo:

alter user nombre with superuser;

Instalar pgAdmin:

En una nueva terminal de Linux instalaremos el gestor de base de datos pgAdmin con los siguientes comandos:

sudo apt install curl
curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add
sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'

Acceder a la base de datos

Para este ejemplo también utilizaremos la herramienta de administración de bases de datos DBeaber Community , una excelente aplicación de software de cliente SQL .

Comenzaremos generando la conexión nueva, recuerda que la conexión es local, por lo que los únicos campos que serán cambiados son, el nombre de la base de datos y el usuario:

Conexión a base de datos PostgreSQL

Teniendo seleccionada la base de datos, generaremos un nuevo script con la tabla que vamos a trabajar:

CREATE TABLE Usuarios (
  ID SERIAL PRIMARY KEY,
  NOMBRE varchar(100) NOT NULL,
  CONTRASEÑA varchar(100) NOT NULL
);

Después agregamos algunos registros de prueba, recuerda que las tablas se almacenan en Schemas y es importante refrescar la información para que se actualice correctamente:

Conexión a base de datos PostgreSQL

Finalmente en VSC teniendo el entorno virtual activo (env) accedemos a la carpeta «src»

cd src

Y ejecutamos nuestro proyecto

python3 conexion_postgresql.py

Al final, cuando se ejecute el código, obtendremos algo como esto:

Conexión a base de datos PostgreSQL

Esperamos que este ejemplo de como generar la conexión a una base de datos PostgreSQL, te haya sido de gran utilidad.

Más información en inglés: https://geekole.com/connect-to-postgresql-database-in-python/