SQLAlchemy es una librería de SQL para Python que facilita el manejo de bases de datos relacionales. Combina un conjunto completo de herramientas de alto nivel y bajo nivel para la creación y manipulación de esquemas de bases de datos, la construcción de consultas SQL y la gestión de transacciones.
1. SQLAlchemy Core: Proporciona una capa de abstracción de SQL que permite escribir consultas SQL directamente, pero de una manera más segura y con mejor soporte para múltiples bases de datos.
2. SQLAlchemy ORM: Permite mapear clases de Python a tablas de bases de datos y proporciona una forma orientada a objetos para interactuar con las bases de datos.
Puedes instalar SQLAlchemy utilizando pip:
pip install sqlalchemy
Además, si planeas usar una base de datos específica, como SQLite, PostgreSQL o MySQL, necesitarás instalar el conector adecuado. Por ejemplo, para PostgreSQL:
pip install psycopg2
Vamos a empezar con un ejemplo básico de cómo definir un modelo de base de datos usando SQLAlchemy ORM.
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
engine = create_engine('sqlite:///example.db', echo=True)
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer)
def __repr__(self):
return f"<User(name={self.name}, age={self.age})>"
# Crear todas las tablas
Base.metadata.create_all(engine)
# Crear una sesión
Session = sessionmaker(bind=engine)
session = Session()
```
En este ejemplo, hemos configurado un motor de base de datos SQLite y definido una clase `User` que mapea a la tabla `users`. Luego, creamos todas las tablas necesarias y configuramos una sesión para interactuar con la base de datos.
Para insertar datos en la base de datos, simplemente creamos instancias de la clase del modelo y las añadimos a la sesión.
# Crear un nuevo usuario
new_user = User(name='John Doe', age=30)
# Añadir el usuario a la sesión
session.add(new_user)
# Confirmar la transacción
session.commit()
SQLAlchemy proporciona una API poderosa y flexible para consultar datos.
# Obtener todos los usuarios
users = session.query(User).all()
print(users)
# Obtener un usuario específico
user = session.query(User).filter_by(name='John Doe').first()
print(user)
Para actualizar un registro, primero lo consultas, modificas los atributos y luego confirmas la transacción.
# Obtener el usuario
user = session.query(User).filter_by(name='John Doe').first()
# Modificar el usuario
user.age = 31
# Confirmar la transacción
session.commit()
Para eliminar un registro, lo consultas, lo eliminas de la sesión y confirmas la transacción.
# Obtener el usuario
user = session.query(User).filter_by(name='John Doe').first()
# Eliminar el usuario
session.delete(user)
# Confirmar la transacción
session.commit()
SQLAlchemy es una herramienta poderosa y flexible para gestionar bases de datos en Python. Su combinación de mapeo orientado a objetos y capacidades de SQL crudo lo hace adecuado para una amplia variedad de aplicaciones.
Dejo link: https://www.sqlalchemy.org/