IIC2413 / Syllabus-2021-2

Contenido del curso Bases de datos del DCC PUC versión 2021-2
62 stars 44 forks source link

Consulta X : Librería exec() #260

Open minsoos opened 3 years ago

minsoos commented 3 years ago

Hola, Tengo entendido que tenemos que hacer un código general para cualquier tabla, pero también tenemos que guardar las columnas de una instancia en sus atributos con sus respectivos nombres. Para esto pensé que podía usar la librería exec, pero en muchos de los cursos está prohibido su uso dado que se puede usar para inyectar código malicioso. La pregunta es, ¿podemos usarla para este efecto? Gracias de antemano,

rjherrera commented 3 years ago

hola! no, no usen exec, no es necesario usarla ni nada parecido. Para hacer cosas generales se recomienda usar herencia.

fernandosmither commented 3 years ago

hola! no, no usen exec, no es necesario usarla ni nada parecido. Para hacer cosas generales se recomienda usar herencia.

Hola profesor!

Nos piden que los métodos de instancia para el objeto de una tabla, se llamen igual que las columnas.

Por ejemplo

Cine(id, pelicula, actor)

BASE DE DATOS:
(1, nombe_a, actor_a)
(2, nombre_b, actor_b)

Lo que sería

def Cine(Model):
    --
cine_1 = Cine.find(1)
print(cine_1.pelicula)

Output:

nombre_a

Si lo anterior es lo que se pide, me sumo a la pregunta de @minsoos en preguntar cómo poder crear el atributo cine_1.pelicula sin utilizar exec, dado que el nombre de este atributo es variable según el esquema y no está fijo.

rjherrera commented 3 years ago

en python hay muchas técnicas para asignar atributos dinámicamente sin usar exec. Hay métodos de python diseñados específicamente para eso, para que los busquen.