1+ # formulario.py
2+ # Archivo donde se almacena la validación del formulario
3+
4+ # TODO 1: Importar función que guarda datos de formulario en un archivo JSON en el módulo formatoJSON
5+ from formatoJSON import guardar_archivo
6+
7+ # TODO 2: Función que valida el formulario
8+ def validar_formulario ():
9+ # Validación de nombre que tenga más de 3 carácteres
10+ while not (nombre := input ("\n Introduce un nombre: " )) or len (nombre ) < 3 :
11+ print ("❌ Nombre inválido. El nombre debe tener al menos 3 caracteres." )
12+ # Validación de email que contenga al menos un '@' y un '.'
13+ while "@" not in (email := input ("\n Introduce un email válido: " )) or "." not in email :
14+ print ("❌ Email inválido. El email debe contener al menos un @ y un punto (.)." )
15+ # Validación de edad que sea número entero y que esté comprendido entre 18 y 100
16+ while True :
17+ try :
18+ if not (edad := int (input ("\n Introduce su edad: " ))) or edad < 18 or edad > 100 :
19+ print ("❌ Edad no válida. La edad debe ser entre 18 y 100 años." )
20+ continue
21+ break
22+ except ValueError :
23+ print ("❌ Edad no válida. La edad debe ser un número." )
24+ continue
25+ # Validación de contraseña que tenga más de 6 carácteres
26+ while not (contrasena := input ("\n Introduce una contraseña: " )) or len (contrasena ) < 6 :
27+ print ("❌ Contraseña no válida. Debe tener al menos 6 caracteres." )
28+ # Imprimimos resumen del formulario
29+ print ("\n --- Resumen ---" )
30+
31+ print (f"Nombre: { nombre } " )
32+ print (f"Email: { email } " )
33+ print (f"Edad: { edad } " )
34+ print (f"Contraseña: { contrasena } " )
35+ # Pregunta del programa si desea guardar los datos en un archivo JSON o perder los datos para siempre
36+ if not (guardar := input ("\n ¿Desea almacenar estos datos en un archivo JSON? (s/n) --> " )) or guardar != "s" :
37+ print ("Datos no almacenados en JSON. Eliminando datos introducidos 🗑️" )
38+ else :
39+ # Pedir al usuario un nombre para el archivo JSON (Inválido estar vacío o que sólo tenga números)
40+ while not (texto := input ("\n Escribe un nombre para el archivo JSON --> " )) or texto .isdigit ():
41+ print ("❌ Nombre inválido." )
42+
43+ # Declarar diccionario con los datos guardados
44+ resumen = {
45+ "nombre" : nombre ,
46+ "email" : email ,
47+ "edad" : edad ,
48+ "contrasena" : contrasena
49+ }
50+ # Convertir texto en archivo JSON
51+ textoJSON = texto + ".json"
52+ # Llamar función 'guardar_archivo' para almacenar los datos en JSON (más información en formatoJSON.py)
53+ guardar_archivo (textoJSON , resumen )
0 commit comments