Saltar al pie de página
AYUDA DE PYTHON

sqlite3 Python (Cómo Funciona Para Desarrolladores)

El módulo sqlite3 en Python ofrece una manera de interactuar con bases de datos SQLite. Es parte de la Biblioteca Estándar de Python, por lo que no necesitas instalar nada extra para usarlo. Vamos a explorar sus características y ver algunos ejemplos de código. Más adelante en este artículo, exploraremos IronPDF, una biblioteca de generación de PDF desarrollada por Iron Software.

SQLite es una base de datos ligera, basada en disco que no requiere un proceso de servidor de base de datos separado. El módulo sqlite3 proporciona un entorno compatible con la interfaz SQL para interactuar con una base de datos existente o una base de datos recién creada sin problemas. El módulo aplica la especificación DB-API 2.0 descrita por PEP 249.

Uso básico

Aquí hay un ejemplo simple y múltiples instrucciones SQL para comenzar con sqlite3.

Conexión a una base de datos

Primero, necesitarás conectarte a tu base de datos SQLite. Si el archivo de la base de datos falta, será generado:

import sqlite3

# Connect to the database (or create it if it doesn't exist)
conn = sqlite3.connect('example.db')
# Create a cursor object
cur = conn.cursor()
import sqlite3

# Connect to the database (or create it if it doesn't exist)
conn = sqlite3.connect('example.db')
# Create a cursor object
cur = conn.cursor()
PYTHON

Creación de una tabla

Usa la instrucción SQL CREATE TABLE para crear una nueva tabla de datos:

# Create a table using SQL statements
cur.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY,
        name TEXT NOT NULL,
        age INTEGER
    )
''')
# Create a table using SQL statements
cur.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY,
        name TEXT NOT NULL,
        age INTEGER
    )
''')
PYTHON

Inserción de datos

Aquí está cómo insertar datos en la tabla de la base de datos:

# Insert data into the table
cur.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ('Alice', 30))

# Commit the transaction using the connection object
conn.commit()
# Insert data into the table
cur.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ('Alice', 30))

# Commit the transaction using the connection object
conn.commit()
PYTHON

Consulta de datos

Puedes ejecutar comandos SQL y obtener resultados de la tabla de la base de datos:

# Query the database
cur.execute('SELECT * FROM users')

# Fetch all results
rows = cur.fetchall()

# Print the results
for row in rows:
    print(row)
# Query the database
cur.execute('SELECT * FROM users')

# Fetch all results
rows = cur.fetchall()

# Print the results
for row in rows:
    print(row)
PYTHON

Actualización de datos

Para actualizar datos existentes en la tabla:

# Update data in the table
cur.execute('''
    UPDATE users SET age = ? WHERE name = ?
''', (31, 'Alice'))

# Commit the transaction
conn.commit()
# Update data in the table
cur.execute('''
    UPDATE users SET age = ? WHERE name = ?
''', (31, 'Alice'))

# Commit the transaction
conn.commit()
PYTHON

Borrado de datos

Para eliminar datos de las filas de la base de datos donde el nombre es Alice:

# Delete data from the table
cur.execute('''
    DELETE FROM users WHERE name = ?
''', ('Alice',))

# Commit the transaction
conn.commit()
# Delete data from the table
cur.execute('''
    DELETE FROM users WHERE name = ?
''', ('Alice',))

# Commit the transaction
conn.commit()
PYTHON

Cerrando la conexión

Recuerda cerrar tanto el cursor como la conexión cuando termines:

# Close the cursor and connection
cur.close()
conn.close()
# Close the cursor and connection
cur.close()
conn.close()
PYTHON

Características avanzadas

Uso de gestores de contexto

Puedes usar gestores de contexto para manejar el cierre automático de la conexión:

with sqlite3.connect('example.db') as conn:
    cur = conn.cursor()
    cur.execute('SELECT * FROM users')
    rows = cur.fetchall()
    for row in rows:
        print(row)
with sqlite3.connect('example.db') as conn:
    cur = conn.cursor()
    cur.execute('SELECT * FROM users')
    rows = cur.fetchall()
    for row in rows:
        print(row)
PYTHON

Gestión de transacciones

SQLite admite transacciones, y puedes usar BEGIN, COMMIT y ROLLBACK para gestionarlas:

try:
    conn.execute('BEGIN')
    cur.execute('INSERT INTO users (name, age) VALUES (?, ?)', ('Bob', 25))
    conn.commit()
except sqlite3.Error as e:
    conn.rollback()
    print(f"An error occurred: {e}")
try:
    conn.execute('BEGIN')
    cur.execute('INSERT INTO users (name, age) VALUES (?, ?)', ('Bob', 25))
    conn.commit()
except sqlite3.Error as e:
    conn.rollback()
    print(f"An error occurred: {e}")
PYTHON

Presentando IronPDF

sqlite3 Python (Cómo Funciona Para Desarrolladores): Figura 1 - IronPDF: La Biblioteca de PDF para Python

IronPDF es una poderosa biblioteca de Python diseñada para crear, editar y firmar PDFs usando HTML, CSS, imágenes y JavaScript. Ofrece un rendimiento de calidad comercial con un bajo uso de memoria. Las características clave son:

Conversión de HTML a PDF:

Convierte archivos HTML, cadenas HTML y URLs a PDFs. Por ejemplo, renderiza una página web como PDF utilizando el renderizador PDF de Chrome.

Soporte Multiplataforma:

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

Edición y Firma:

Establece propiedades, añade seguridad con contraseñas y permisos, y aplica firmas digitales a tus PDFs.

Plantillas de Páginas y Configuración:

Personaliza PDFs con encabezados, pies de página, números de página y márgenes ajustables. Admite diseños responsivos y tamaños de papel personalizados.

Cumplimiento de Estándares:

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

Generar documentos PDF con IronPDF y SQLite3 Python

import sqlite3
from ironpdf import * 

# Apply your license key
License.LicenseKey = "key"

# Connect to the sqlite database file (or create it if it doesn't exist)
conn = sqlite3.connect('example.db')

# Create a cursor object for database connection
cur = conn.cursor()

# Create a table SQL command 
cur.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY,
        name TEXT NOT NULL,
        age INTEGER
    )
''')

# Insert data into the table
cur.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ('IronUser1', 30))
cur.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ('IronUser2', 31))
cur.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ('IronUser3', 25))
cur.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ('IronUser4', 28))

# Commit the transaction using the connection object
conn.commit()

# Query the database
cur.execute('SELECT * FROM users')

# Fetch all results
rows = cur.fetchall()

# Print the results
for row in rows:
    print(row)

# Update data in the table
cur.execute('''
    UPDATE users SET age = ? WHERE name = ?
''', (31, 'Alice'))

# Commit the transaction
conn.commit()    

# Delete data from the table
cur.execute('''
    DELETE FROM users WHERE name = ?
''', ('IronUser1',))

# Commit the transaction
conn.commit()

# Initialize PDF renderer
renderer = ChromePdfRenderer()

# Create a PDF from an HTML string using Python
content = "<h1>Awesome Iron PDF with Sqlite3</h1>"
content += "<p>table data</p>"

for row in rows:
    content += "<p>" + str(row) + "</p>"

# Close the cursor and connection
cur.close()
conn.close()

# Render the HTML as a PDF
pdf = renderer.RenderHtmlAsPdf(content)

# Export to a file
pdf.SaveAs("DemoSqlite3.pdf")
import sqlite3
from ironpdf import * 

# Apply your license key
License.LicenseKey = "key"

# Connect to the sqlite database file (or create it if it doesn't exist)
conn = sqlite3.connect('example.db')

# Create a cursor object for database connection
cur = conn.cursor()

# Create a table SQL command 
cur.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY,
        name TEXT NOT NULL,
        age INTEGER
    )
''')

# Insert data into the table
cur.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ('IronUser1', 30))
cur.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ('IronUser2', 31))
cur.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ('IronUser3', 25))
cur.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ('IronUser4', 28))

# Commit the transaction using the connection object
conn.commit()

# Query the database
cur.execute('SELECT * FROM users')

# Fetch all results
rows = cur.fetchall()

# Print the results
for row in rows:
    print(row)

# Update data in the table
cur.execute('''
    UPDATE users SET age = ? WHERE name = ?
''', (31, 'Alice'))

# Commit the transaction
conn.commit()    

# Delete data from the table
cur.execute('''
    DELETE FROM users WHERE name = ?
''', ('IronUser1',))

# Commit the transaction
conn.commit()

# Initialize PDF renderer
renderer = ChromePdfRenderer()

# Create a PDF from an HTML string using Python
content = "<h1>Awesome Iron PDF with Sqlite3</h1>"
content += "<p>table data</p>"

for row in rows:
    content += "<p>" + str(row) + "</p>"

# Close the cursor and connection
cur.close()
conn.close()

# Render the HTML as a PDF
pdf = renderer.RenderHtmlAsPdf(content)

# Export to a file
pdf.SaveAs("DemoSqlite3.pdf")
PYTHON

Explicación del código

Este programa de Python demuestra cómo usar la biblioteca SQLite para crear una base de datos, insertar datos en ella, realizar consultas, actualizar registros, eliminar registros y finalmente generar un documento PDF usando IronPDF.

  1. Importando Bibliotecas:

    • sqlite3: Módulo incorporado de Python para trabajar con bases de datos SQLite.
    • ironpdf: Importando componentes de IronPDF, que permite la generación de PDF.
  2. Conectándose a la Base de Datos:

    • Establece una conexión a una base de datos SQLite llamada example.db.
  3. Creando una Tabla:

    • Define una tabla SQLite users con columnas id (INTEGER, PRIMARY KEY), name (TEXT, NOT NULL), y age (INTEGER).
  4. Insertando Datos:

    • Inserta múltiples filas de datos en la tabla users.
  5. Cometiendo Transacciones:

    • Realiza los cambios en la Base de Datos para hacerlos persistentes.
  6. Consultando la Base de Datos:

    • Ejecuta una instrucción SELECT para recuperar todas las filas de la tabla users.
  7. Actualizando Datos:

    • Actualiza el age de un usuario llamado 'Alice'.
  8. Eliminando Datos:

    • Elimina un usuario llamado 'IronUser1' de la tabla users.
  9. Generando PDF:

    • Usa IronPDF (ChromePdfRenderer) para crear un documento PDF a partir del contenido HTML.
    • Combina el encabezado y los datos de la tabla (recuperados de la base de datos) en el contenido HTML.
    • Guarda el documento PDF como DemoSqlite3.pdf.
  10. Cerrando Conexiones:
    • Cierra el cursor (cur) y la conexión (conn) para liberar recursos.

Este script demuestra un flujo de trabajo completo desde la configuración de la base de datos hasta la manipulación de datos y la generación de PDF usando las bibliotecas SQLite3 e IronPDF de Python.

Resultado

sqlite3 Python (Cómo Funciona Para Desarrolladores): Figura 2 - Ejemplo de salida de consola

PDF

sqlite3 Python (Cómo Funciona Para Desarrolladores): Figura 3 - Ejemplo de salida de PDF generado con IronPDF con sqlite para consultar datos

Licencia de IronPDF

IronPDF funciona con una clave de licencia. IronPDF para Python ofrece una clave de licencia de prueba gratuita para permitir a los usuarios probar sus amplias características antes de la compra.

Coloca la Clave de Licencia aquí:

import {IronPdfGlobalConfig, PdfDocument} from "@ironsoftware/ironpdf";

// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your key here";
import {IronPdfGlobalConfig, PdfDocument} from "@ironsoftware/ironpdf";

// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your key here";
JAVASCRIPT

Conclusión

sqlite3 Python (Cómo Funciona Para Desarrolladores): Figura 4 - Página de Licencias de IronPDF

El módulo sqlite3 es una herramienta poderosa y fácil de usar para trabajar con bases de datos SQLite en Python. Su integración en la Biblioteca Estándar de Python hace que las operaciones simples y complejas de base de datos sean convenientes. El IronPDF ofrece una licencia de prueba. Posteriormente, la licencia empieza en $799 y más.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más