PostgreSQL: conexión a la base de datos mediante Python

La API de PostgreSQL para Python permite al usuario interactuar con la base de datos de PostgreSQL utilizando el módulo psycopg2. En este artículo, veremos el proceso de conexión a una base de datos PostgreSQL usando Python.

requisitos previos:

Primero necesitaremos instalar el módulo psycopg2 con el siguiente comando en el símbolo del sistema:

pip install psycopg2

 

Creación de una base de datos:

A modo de ejemplo, necesitaremos una base de datos de muestra. Para crearlo, siga los pasos a continuación:

  • Primero abra una herramienta de cliente de PostgreSQL como pgadmin4 o psql.
  • Segundo inicio de sesión en la base de datos con sus credenciales.
  • Finalmente, use el siguiente comando para crear una base de datos (por ejemplo, Escuela)
CREATE DATABASE school;

Conexión a la base de datos:

Para conectarse a la base de datos creada anteriormente (es decir, la escuela), usamos la función conectar(). La función connect() se usa para crear una nueva sesión de base de datos y devuelve una nueva instancia de clase de conexión.

Para hacerlo, use la siguiente sintaxis:

Syntax: conn = psycopg2.connect("dbname=suppliers user=postgres password=postgres")

Para que sea conveniente de usar, puede usar el siguiente método:

1. Primero cree un archivo database.ini con las credenciales como se muestra a continuación:

[postgresql]
host=localhost
database=school
user=postgres
password=5555

Ahora, la siguiente función config() lee el archivo database.ini y devuelve los parámetros de conexión. La misma función config() se agrega en el archivo config.py:

Python3

#!/usr/bin/python
from configparser import ConfigParser
  
  
def config(filename='database.ini', section='postgresql'):
    # create a parser
    parser = ConfigParser()
    # read config file
    parser.read(filename)
  
    # get section, default to postgresql
    db = {}
    if parser.has_section(section):
        params = parser.items(section)
        for param in params:
            db[param[0]] = param[1]
    else:
        raise Exception('Section {0} not found in the {1} file'.format(section, filename))
  
    return db

Ejemplo:

La siguiente función connect() se conecta a la base de datos de la escuela que creamos anteriormente y devuelve la versión de la base de datos de PostgreSQL.

Python3

#!/usr/bin/python
import psycopg2
from config import config
  
def connect():
    """ Connect to the PostgreSQL database server """
    conn = None
    try:
        # read connection parameters
        params = config()
  
        # connect to the PostgreSQL server
        print('Connecting to the PostgreSQL database...')
        conn = psycopg2.connect(**params)
          
        # create a cursor
        cur = conn.cursor()
          
    # execute a statement
        print('PostgreSQL database version:')
        cur.execute('SELECT version()')
  
        # display the PostgreSQL database server version
        db_version = cur.fetchone()
        print(db_version)
         
    # close the communication with the PostgreSQL
        cur.close()
    except (Exception, psycopg2.DatabaseError) as error:
        print(error)
    finally:
        if conn is not None:
            conn.close()
            print('Database connection closed.')
  
  
if __name__ == '__main__':
    connect()

Producción:

Publicación traducida automáticamente

Artículo escrito por ddeevviissaavviittaa y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *