class AutorModel(db.Model): __tablename__ = 't_autor' # automaticamente se designa autoincrementable al primer primary key int # para deshabilitar usar autoincremente=False id = db.Column("autor_id", db.Integer, primary_key=True) nombre = db.Column("autor_nombre", db.String(50)) estado = db.Column(db.Boolean, default=True) libros = db.relationship('AutorLibroModel', backref='autor') def __init__(self, nombre): self.nombre = nombre
class LibroModel(db.Model): __tablename__= "t_libro" id = db.Column("lib_id", db.Integer, primary_key=True) nombre = db.Column("lib_nomb",db.String(50)) editorial = db.Column("lib_editorial",db.String(50)) numpag = db.Column("lib_numpag",db.Integer) precio = db.Column("lib_precio", db.Float()) publicacion = db.Column("lib_publicacion",db.String(4)) codigo = db.Column("lib_cod",db.Text) estado = db.Column(db.Boolean, default=True) # RELACIONES est_id = db.Column(db.Integer, db.ForeignKey('t_estante.est_id'), nullable=False) autores = db.relationship('AutorLibroModel', backref='libro') # estante = db.relationship('EstanteModel', backref='libro') def __init__(self,nombre, editorial, numpag, precio, publicacion, codigo, estante): self.nombre = nombre self.editorial = editorial self.numpag = numpag self.precio = precio self.publicacion = publicacion self.codigo = codigo self.est_id = estante def save(self): db.session.add(self) db.session.commit() def mostrar_json(self): return{ 'id': self.id, 'nombre': self.nombre, 'editorial': self.editorial, 'num_paginas': self.numpag, 'precio': self.precio, 'publicacion': self.publicacion, 'codigo': self.codigo, 'estante': self.est_id, 'estado': self.estado } def __str__(self): return '%s,%s,%s,%s,%s,%s,%s,%s,%s'%(self.id,self.nombre,self.editorial,self.numpag,self.precio,self.publicacion,self.codigo,self.est_id, self.estado)
class LibroModel(db.Model): __tablename__ = "t_libro" id = db.Column("lib_id", db.Integer, primary_key=True) nombre = db.Column("lib_nomb", db.String(45)) editorial = db.Column("lib_editorial", db.String(45)) numpaginas = db.Column("lib_numpag", db.Integer) precio = db.Column("lib_precio", db.DECIMAL(5, 2)) publicacion = db.Column("lib_publicacion", db.String(4)) codigo = db.Column("lib_cod", db.Text) #RELACIONES est_id = db.Column(db.Integer, db.ForeignKey('t_estante.est_id'), nullable=False) autores = db.relationship('AutorLibroModel', backref="libro") def __init__(self, nombre, editorial, numpaginas, precio, publicacion, codigo): self.nombre = nombre self.editorial = editorial self.numpaginas = numpaginas self.precio = precio self.publicacion = publicacion self.codigo = codigo
class EstanteModel(db.Model): __tablename__ = 't_estante' # automaticamente se designa autoincrementable al primer primary key int # para deshabilitar usar autoincremente=False id = db.Column("est_id",db.Integer, primary_key=True) #Si no se usa el mismo nombre del campo en la BD, este se puede asignar como primer valor de bd.column() capacidad = db.Column("est_cap", db.Integer, nullable=False) ubicacion = db.Column("est_ubic",db.String(50)) descripcion = db.Column("est_desc",db.String(50)) estado = db.Column(db.Boolean, default=True) # Crear relación inversa # Sirve paraobtener todos los libros que pertenecen a un estante libros = db.relationship('LibroModel', backref='estante') def __init__(self, capacidad, ubicacion, descripcion, estado = None): self.capacidad = capacidad self.ubicacion = ubicacion self.descripcion = descripcion if estado is not None: self.estado = estado def save(self): db.session.add(self) db.session.commit() def mostrar_json(self): return{ 'id': self.id, 'capacidad':self.capacidad, 'ubicacion':self.ubicacion, 'descripcion':self.descripcion, 'estado': self.estado } def __str__(self): return '%s, %s, %s, %s'%(self.id, self.capacidad, self.ubicacion, self.estado)
class PersonaModel(db.Model): __tablename__ = "t_persona" id = db.Column("per_id", db.Integer, primary_key=True) dni = db.Column("per_dni", db.String(8)) nombres = db.Column("per_nombres", db.String(50)) apellidos = db.Column("per_apellidos", db.String(50)) fecnac = db.Column("per_fecnac", db.Date) sexo = db.Column("per_sexo", db.String(3)) correo = db.Column("per_correo", db.String(30)) celular = db.Column("per_celular", db.String(15)) observacion = db.Column("per_observacion", db.String(100)) estado = db.Column("per_estado", db.Boolean, default=True) fecreg = db.Column("per_fecreg", db.DateTime, default=datetime.now) # RELACIONES # Voy a crear mi relacion inversa # sirve para hacer la relacion inversa (traer todos la experiencia laboral que pertenecen a esa persona) y nos ayuda demasiado para la logica laborales = db.relationship('LaboralModel', backref='persona') conocimientos = db.relationship('ConocimientoModel', backref='persona') hobbies = db.relationship('HobbieModel', backref='persona') habilidades = db.relationship('HabilidadModel', backref='persona') academicos = db.relationship('AcademicoModel', backref='persona') def __init__(self, dni, nombres, apellidos, fecnac, sexo, correo, celular, observacion, estado): self.dni = dni self.nombres = nombres self.apellidos = apellidos self.fecnac = fecnac self.sexo = sexo self.correo = correo self.celular = celular self.observacion = observacion if estado is not None: self.estado = estado def guardar_bd(self): db.session.add(self) db.session.commit() def mostrar_json(self): # print (self.fecnac.strftime("%m/%d/%Y, %H:%M:%S")) return { 'id': self.id, 'dni': self.dni, 'nombres': self.nombres, 'apellidos': self.apellidos, 'fecnac': self.fecnac.strftime("%m-%d-%Y"), 'sexo': self.sexo, 'correo': self.correo, 'celular': self.celular, 'observacion': self.observacion, 'estado': self.estado, 'fecreg': self.fecreg.strftime("%m-%d-%Y %H:%M:%S") } def __str__(self): return '%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s' % ( self.id, self.dni, self.nombres, self.apellidos, self.fecnac, self.sexo, self.correo, self.celular, self.observacion, self.estado, self.fecreg)