Python: Acceso a bases de datos
Aprende cómo acceder a MySQL y MongoDB desde código Python para realizar operaciones CRUD.
Aprende Python GRATIS y certifícateEl acceso a bases de datos en Python permite gestionar información de manera organizada y eficiente, facilitando la interacción con diferentes sistemas de almacenamiento. Para lograrlo, se hace uso de librerías y controladores específicos que habilitan la conexión y el intercambio de datos con MySQL y MongoDB.
Requisitos previos y configuración
Antes de iniciar, es imprescindible tener instalado Python y los paquetes necesarios. Para interactuar con MySQL, se recomienda mysql-connector-python o bibliotecas similares. Para MongoDB, la opción principal es pymongo. Ambas se instalan mediante la utilidad pip
:
pip install mysql-connector-python
pip install pymongo
Con esta instalación, el entorno de desarrollo quedará listo para manejar instrucciones SQL o documentos en formato BSON, dependiendo de la base de datos utilizada.
Conexión a MySQL
El acceso a MySQL se realiza estableciendo un enlace con la base de datos, proporcionando datos como el usuario, la contraseña y el host. Un ejemplo de conexión básica es el siguiente:
import mysql.connector
conexion = mysql.connector.connect(
host="localhost",
user="usuario",
password="contraseña",
database="nombre_base_datos"
)
cursor = conexion.cursor()
cursor.execute("SELECT VERSION()")
resultado = cursor.fetchone()
print("Versión de MySQL:", resultado[0])
Aquí, la función mysql.connector.connect
utiliza parámetros para la autenticación y la selección de la base de datos. Con la variable cursor
se envían las consultas y se recuperan los resultados.
Ejecución de consultas en MySQL
Para gestionar información en MySQL, se pueden usar sentencias como INSERT
, UPDATE
o SELECT
. Un ejemplo para crear una tabla e insertar datos sería:
cursor.execute("""
CREATE TABLE IF NOT EXISTS empleados (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100),
puesto VARCHAR(100)
)
""")
cursor.execute("""
INSERT INTO empleados (nombre, puesto)
VALUES ('María', 'Analista')
""")
conexion.commit()
Es fundamental llamar a commit()
para confirmar los cambios en la base de datos. La ejecución correcta de estas consultas permite mantener una estructura coherente y persistente de la información.
Conexión a MongoDB
En el caso de MongoDB, se trabaja con documentos en formato JSON extendido. Para conectarse a un servidor local, se suele utilizar la librería pymongo:
from pymongo import MongoClient
cliente = MongoClient("mongodb://localhost:27017/")
db = cliente["mi_base_datos"]
coleccion = db["clientes"]
En este ejemplo, se crea un objeto MongoClient
que establece la comunicación con la instancia de MongoDB. Después, se define la base de datos y la colección con la que se va a trabajar.
Inserción y consulta de documentos en MongoDB
Para insertar documentos en MongoDB, se utiliza el método insert_one
o insert_many
. De igual modo, se obtienen los documentos mediante find
o find_one
:
# Insertar un documento
documento = {"nombre": "Carlos", "edad": 35, "ciudad": "Madrid"}
coleccion.insert_one(documento)
# Consultar documentos
for doc in coleccion.find():
print(doc)
Cada documento se representa como un diccionario de Python. Esto otorga flexibilidad a la hora de trabajar con información semiestructurada y facilita la adaptación de los datos a diversos casos de uso.
Buenas prácticas y consideraciones
- Mantén separadas las credenciales de conexión del código fuente, empleando variables de entorno u otros métodos seguros.
- Verifica que las sentencias SQL o métodos de inserción en MongoDB cumplan con el formato correcto para evitar errores de sintaxis.
- Realiza copias de seguridad periódicas de la base de datos y controla el rendimiento a medida que crece el volumen de la información.
- Utiliza herramientas de depuración en Python, como las disponibles en Visual Studio Code, para identificar cuellos de botella o comportamientos inesperados durante la interacción con la base de datos.
Lecciones de este módulo de Python
Lecciones de programación del módulo Acceso a bases de datos del curso de Python.