AYUDA DE PYTHON

psycopg2 (Cómo funciona para los desarrolladores)

Actualizado agosto 13, 2024
Compartir:

En psycopg2 es un popular adaptador de bases de datos PostgreSQL para el lenguaje de programación Python. Es conocido por su eficiencia, seguridad de hilos e implementación completa de la especificación Python DB API 2.0. Exploremos sus características y veamos algunos ejemplos de código. Más adelante en este artículo, aprenderemos sobre IronPDFuna biblioteca de generación de PDF de IronSoftware.

Introducción

Psycopg2 está diseñado para ser eficiente y seguro, por lo que es adecuado para aplicaciones con muchos subprocesos. Algunas de sus principales características son:

  • Seguridad de hilos: Múltiples hilos pueden compartir la misma conexión: la capacidad de manejar aplicaciones multihilo que crean y destruyen muchos cursores.
  • Cursores del lado del cliente y del lado del servidor: Gestión eficiente de grandes conjuntos de datos.
  • Comunicación asíncrona y notificaciones: Soporte para operaciones asíncronas.
  • Soporte COPY: Carga masiva de datos de forma eficiente mediante COPY TO y COPY FROM.
  • Sistema de Adaptación: Adapta automáticamente los tipos Python a los tipos PostgreSQL; el paquete transpone automáticamente a los tipos de datos Postgresql coincidentes.
  • Compatible con Unicode y Python 3: Soporte completo para Unicode y Python 3.

Instalación

Puede instalar psycopg2 usando pip:

pip install psycopg2
pip install psycopg2
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Alternativamente, puede utilizar setup.py del paquete fuente localmente. Puede obtener el paquete fuente en el repositorio de código fuente aquí:

python setup.py build
sudo python setup.py install
python setup.py build
sudo python setup.py install
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Para un paquete independiente que no requiera un compilador o librerías externas, puede utilizar el paquete psycopg2-binary:

pip install psycopg2-binary
pip install psycopg2-binary
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Uso básico

He aquí un ejemplo sencillo para empezar a utilizar psycopg2.

Conexión a una base de datos

En primer lugar, deberá conectarse a su base de datos PostgreSQL:

import psycopg2
# Connect to your PostgreSQL database
conn = psycopg2.connect(
    dbname="your_dbname",
    user="your_username",
    password="your_password",
    host="your_host",
    port="your_port"
)
# Create a cursor object
cur = conn.cursor()
import psycopg2
# Connect to your PostgreSQL database
conn = psycopg2.connect(
    dbname="your_dbname",
    user="your_username",
    password="your_password",
    host="your_host",
    port="your_port"
)
# Create a cursor object
cur = conn.cursor()
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Ejecución de consultas

Puede ejecutar consultas SQL utilizando el objeto cursor:

# Execute a query
cur.execute("SELECT * FROM your_table")
# Fetch all results
rows = cur.fetchall()
# Print the results
for row in rows:
    print(row)
# Execute a query
cur.execute("SELECT * FROM your_table")
# Fetch all results
rows = cur.fetchall()
# Print the results
for row in rows:
    print(row)
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Inserción de datos

A continuación se explica cómo insertar datos en una tabla:

# Insert data into a table
cur.execute(
    "INSERT INTO your_table (column1, column2) VALUES (%s, %s)",
    ("value1", "value2")
)
# Commit the transaction
conn.commit()
# Insert data into a table
cur.execute(
    "INSERT INTO your_table (column1, column2) VALUES (%s, %s)",
    ("value1", "value2")
)
# Commit the transaction
conn.commit()
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Cerrar la conexión

No olvides cerrar el cursor y la conexión cuando hayas terminado:

# Close the cursor and connection
cur.close()
conn.close()
# Close the cursor and connection
cur.close()
conn.close()
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Funciones avanzadas

Uso de COPY para la carga masiva

El comando COPY es útil para cargar datos en bloque:

# Use COPY to load data from a file
with open('data.csv', 'r') as f:
    cur.copy_from(f, 'your_table', sep=',')
conn.commit()
# Use COPY to load data from a file
with open('data.csv', 'r') as f:
    cur.copy_from(f, 'your_table', sep=',')
conn.commit()
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Notificaciones asíncronas

Puede escuchar notificaciones asíncronas de la base de datos:

# Listen for notifications
cur.execute("LISTEN your_channel")
# Wait for a notification
conn.poll()
while conn.notifies:
    notify = conn.notifies.pop(0)
    print("Got NOTIFY:", notify.payload)
# Listen for notifications
cur.execute("LISTEN your_channel")
# Wait for a notification
conn.poll()
while conn.notifies:
    notify = conn.notifies.pop(0)
    print("Got NOTIFY:", notify.payload)
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Presentación de IronPDF

psycopg2 (Cómo funciona para desarrolladores): Figura 1 - IronPDF:La librería PDF de Python

IronPDF es una potente biblioteca de Python diseñada para crear, editar y firmar PDF utilizando HTML, CSS, imágenes y JavaScript. Ofrece un rendimiento de nivel comercial con un bajo consumo de memoria. Las características clave incluyen:

**Conversión de HTML a PDF

Convierta archivos HTML, cadenas HTML y URL en PDF. Por ejemplo, renderiza una página web como PDF utilizando el renderizador de PDF de Chrome.

**Soporte multiplataforma

Compatible con varias plataformas .NET, incluidas .NET Core, .NET Standard y .NET Framework. Es compatible con Windows, Linux y macOS.

Edición y firma:

Establezca propiedades, añada seguridad con contraseñas y permisos, y aplique firmas digitales a sus PDF.

Plantillas de página y configuración:

Personalice los PDF con encabezados, pies de página, números de página y márgenes ajustables. Admite diseños adaptables y tamaños de papel personalizados.

Cumplimiento de normas:

Cumple estándares PDF como PDF/A y PDF/UA. Admite la codificación de caracteres UTF-8 y gestiona activos como imágenes, CSS y fuentes.

Generar documentos PDF con IronPDF y psycopg2

import psycopg2
from ironpdf import * 
# Apply your license key
License.LicenseKey = "Key"
# Connect to your local PostgreSQL database
conn = psycopg2.connect(
    dbname="demo",
    user="postgres",
    password="postgres",
    host="localhost",
    port="5432"
)
# Create a cursor object
cur = conn.cursor()
cur.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY,
        name TEXT NOT NULL,
        age INTEGER
    )
''')
# Commit the transaction with connection object
conn.commit()
# Define the SQL statement for inserting data into the table
insert_query = '''
    INSERT INTO users (id, name, age)
    VALUES (%s, %s,%s)
'''
# Data to be inserted
userData1 = (1, 'John', 25)
# Execute the SQL command to insert data
cur.execute(insert_query, userData1)
# Data to be inserted
userData2 = (2, 'Smith', 35)
# Execute the SQL command to insert data
cur.execute(insert_query, userData2)
# Data to be inserted
userData3 = (3, 'Tom', 29)
# Execute the SQL command to insert data
cur.execute(insert_query, userData3)
# Commit the transaction
conn.commit()
# Execute a query
cur.execute("SELECT * FROM users")
# Fetch all results
rows = cur.fetchall() 
renderer = ChromePdfRenderer()
# Create a PDF from a HTML string using Python
content = "<h1>Awesome Iron PDF with psycopg2</h1>"
content += "<p>table data</p>"
for row in rows:
    print(row)
    content += "<p>"+str(row)+"</p>"
# Close the cursor and connection
cur.close()
conn.close()
pdf = renderer.RenderHtmlAsPdf(content)
    # Export to a file or Stream
pdf.SaveAs("Demopsycopg2.pdf")
import psycopg2
from ironpdf import * 
# Apply your license key
License.LicenseKey = "Key"
# Connect to your local PostgreSQL database
conn = psycopg2.connect(
    dbname="demo",
    user="postgres",
    password="postgres",
    host="localhost",
    port="5432"
)
# Create a cursor object
cur = conn.cursor()
cur.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY,
        name TEXT NOT NULL,
        age INTEGER
    )
''')
# Commit the transaction with connection object
conn.commit()
# Define the SQL statement for inserting data into the table
insert_query = '''
    INSERT INTO users (id, name, age)
    VALUES (%s, %s,%s)
'''
# Data to be inserted
userData1 = (1, 'John', 25)
# Execute the SQL command to insert data
cur.execute(insert_query, userData1)
# Data to be inserted
userData2 = (2, 'Smith', 35)
# Execute the SQL command to insert data
cur.execute(insert_query, userData2)
# Data to be inserted
userData3 = (3, 'Tom', 29)
# Execute the SQL command to insert data
cur.execute(insert_query, userData3)
# Commit the transaction
conn.commit()
# Execute a query
cur.execute("SELECT * FROM users")
# Fetch all results
rows = cur.fetchall() 
renderer = ChromePdfRenderer()
# Create a PDF from a HTML string using Python
content = "<h1>Awesome Iron PDF with psycopg2</h1>"
content += "<p>table data</p>"
for row in rows:
    print(row)
    content += "<p>"+str(row)+"</p>"
# Close the cursor and connection
cur.close()
conn.close()
pdf = renderer.RenderHtmlAsPdf(content)
    # Export to a file or Stream
pdf.SaveAs("Demopsycopg2.pdf")
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Código Explicación

El script demuestra la interacción con una base de datos PostgreSQL usando `psycopg2``, manipulación de datos (creación, inserción, recuperación)y la integración con IronPDF para la generación de documentos.

  1. Conexión a base de datos: Se conecta a una base de datos PostgreSQL local llamada "demo" utilizando `psycopg2`, especificando las credenciales para la autenticación del usuario y los detalles del host de la base de datos.

  2. Creación de tablas: Define y ejecuta una sentencia SQL para crear una tabla llamada usuarios si aún no existe. La tabla tiene las columnas `id`` (entero, clave primaria) (texto, no null)...y.. (entero).

  3. Inserción de datos: Inserta tres filas de datos en la tabla "usuarios" utilizando consultas parametrizadas (`userData1, \`userData2, `userData3``). Cada tupla contiene los valores de "id", "nombre" y "edad".

  4. Gestión de transacciones: Compromete la transacción tras la creación de tablas y la inserción de datos para garantizar que los cambios se guardan en la base de datos.

  5. Recuperación de datos: Ejecuta una consulta SELECT para recuperar todas las filas (\seleccionar * de usuarios) de la tabla "usuarios" y recupera los resultados ().

  6. Generación de PDF: Utiliza `IronPDF` para generar un documento PDF a partir de contenido HTML. El contenido HTML incluye un título y una representación formateada de los datos obtenidos de la tabla "usuarios".

  7. Guardar archivo: Guarda el documento PDF generado como "Demopsycopg2.pdf" en el directorio actual.

  8. Cierre de la conexión: Esta función cierra el cursor de la base de datos (`cur`) y la conexión a la base de datos (`conn`) para liberar recursos y garantizar una limpieza adecuada.

    Para la gestión de excepciones, puedes envolver el script en un bloque try-catch para asegurarte de que se gestionan todas las operaciones de error en caso de que falle una de las consultas o falle la conexión.

Salida

psycopg2 (Cómo funciona para desarrolladores): Figura 2 - Ejemplo de salida de consola

PDF

psycopg2 (Cómo funciona para desarrolladores): Figura 3 - Ejemplo de salida utilizando psycopg2 para almacenar y recuperar datos mientras IronPDF genera un informe PDF

Licencia IronPDF

IronPDF funciona con la clave de licencia de Python. IronPDF for Python ofrece una clave de licencia de prueba gratuita para que los usuarios puedan probar sus amplias funciones antes de comprarlo.

Coloque la clave de licencia al inicio del script antes de utilizar el paquete IronPDF:

from ironpdf import * 
# Apply your license key
License.LicenseKey = "key"
from ironpdf import * 
# Apply your license key
License.LicenseKey = "key"
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Conclusión

Psycopg2 es una biblioteca potente y flexible para interactuar con bases de datos PostgreSQL en Python. Su completo conjunto de funciones y su eficiente diseño lo convierten en una excelente opción para operaciones de bases de datos sencillas y complejas. IronPDF es un robusto paquete y biblioteca de Python que facilita la creación, manipulación y representación de documentos PDF directamente desde aplicaciones Python. Ofrece funciones completas para generar PDF a partir de contenidos HTML, integrándose perfectamente con las tecnologías web existentes. Con IronPDF, los desarrolladores pueden automatizar eficazmente la generación de informes, facturas y otra documentación, mejorando la productividad y la experiencia del usuario. Entre sus funciones se incluyen los formularios PDF interactivos, la extracción de texto, la fusión y división de PDF, y la adición de funciones de seguridad como la protección mediante contraseña. La versatilidad y facilidad de uso de IronPDF lo convierten en una valiosa herramienta para desarrolladores que buscan implementar funcionalidades de generación y manipulación de PDF en sus proyectos Python.

< ANTERIOR
sqlite3 Python (Cómo funciona para desarrolladores)
SIGUIENTE >
crc32c Python (Cómo funciona para desarrolladores)

¿Listo para empezar? Versión: 2024.8 acaba de salir

Instalación pip gratuita View Licenses >