Untitled
unknown
python
a year ago
1.5 kB
2
Indexable
Never
from datetime import datetime from src.core.basededatos import db class BaseModel(db.Model): """Clase abstracta que proporciona operaciones CRUD para los modelos""" __abstract__ = True id = db.Column(db.Integer, primary_key=True, unique=True) creado_el = db.Column(db.DateTime, default=datetime.utcnow) actualizado_el = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) @classmethod def listar(cls, id: int) -> object: """Obtener un objeto por su ID.""" return cls.query.get(id) @classmethod def listar_todos(cls) -> list: """Obtener todos los objetos de este modelo.""" return cls.query.all() @classmethod def actualizar(self) -> None: """Actualizar el objeto en la base de datos.""" db.session.commit() @classmethod def eliminar(self) -> None: """Eliminar el objeto de la base de datos.""" db.session.delete(self) db.session.commit() @classmethod def modificar(self, **kwargs) -> None: """Modificar el objeto con nuevos valores y guardarlo en la db""" for key, value in kwargs.items(): setattr(self, key, value) self.update() @classmethod def crear(cls, **kwargs) -> object: """Crear un nuevo objeto y guardarlo en la base de datos.""" instance = cls(**kwargs) instance.save() return instance