ORM (Object Relational Mapping) permite interactuar con la base de datos usando objetos en lugar de SQL.
pip install flask-sqlalchemy
from flask_sqlalchemy import SQLAlchemy
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///database.db"
db = SQLAlchemy(app)
class Usuario(db.Model):
id = db.Column(db.Integer, primary_key=True)
nombre = db.Column(db.String(100), nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return f"<Usuario {self.nombre}>"
with app.app_context():
db.create_all()
# Crear
nuevo = Usuario(nombre="Ana", email="ana@mail.com")
db.session.add(nuevo)
db.session.commit()
# Leer
usuarios = Usuario.query.all()
# Actualizar
u = Usuario.query.first()
u.nombre = "Ana María"
db.session.commit()
# Eliminar
db.session.delete(u)
db.session.commit()
# Filtrar
Usuario.query.filter_by(nombre="Ana").first()
# Filtros con condiciones
Usuario.query.filter(Usuario.email.like("%@gmail.com")).all()
class Pedido(db.Model):
id = db.Column(db.Integer, primary_key=True)
cliente_id = db.Column(db.Integer, db.ForeignKey("usuario.id"))
cliente = db.relationship("Usuario", backref="pedidos")
Usuario con nombre y correo.