comprobacion utilizando clases
usuarioc
class usuario_validar(): errors = [] def longitud(self, usercomp): if len(usercomp) < 6: self.errors.append('El nombre de usuario debe contener al menos 6 caracteres') return False elif len(usercomp) > 12: self.errors.append('El nombre de usuario debe contener maximo 12 caracteres') return False else: return True def alfanumerico(self, usercomp): if usercomp.isalnum() == False: self.errors.append('El nombre de usuario puede contener solo letras y numeros') return False else: return True def validar_usuario(self, usercomp): valido = self.longitud(usercomp) and self.alfanumerico(usercomp) return valido
paswordc
class password_validar(): errors=[] def longitud(self, passw): if len(passw) < 8: self.errors.append('La contrasena debe tener al menos 8 caracteres') return False else: return True def minuscula(self, passw): letras_minuscula=False for carac in passw: if carac.islower()==True: letras_minuscula=True if not letras_minuscula: self.errors.append('La contrasena debe tener al menos una minuscula') return False else: return True def mayuscula(self, passw): letras_mayuscula=False for carac in passw: if carac.isupper()==True: letras_mayuscula=True if not letras_mayuscula: self.errors.append('La contrasena debe tener al menos una mayuscula') return False else: return True def numero(self, passw): num=False for carac in passw: if carac.isdigit()== True: num=True if not num: self.errors.append('La contrasena debe tener al menos un numero') return False else: return True def no_alfanumerico(self, passw): if passw.isalnum()==True: self.errors.append('La contrasena debe tener al menos un caracter no alfanumerico') return False else: return True def espacios(self, passw): if passw.count(" ")> 0: self.errors.append('La contrasena no puede contener espacios en blanco') return False else: return True def validar_password(self,passw): valido=self.longitud(passw) and self.minuscula(passw) and self.mayuscula(passw) and self.numero(passw) and self.no_alfanumerico(passw) and self.espacios(passw) return valido
validadorc
# -*- coding: utf-8 -*- from Tkinter import * import tkMessageBox import usuarioc as uv import paswordc as pv user_validator = uv.usuario_validar() pass_validator = pv.password_validar() def validation(): cuser = user.get() cpasword = pasword.get() correcto = False if correcto == False: if not user_validator.validar_usuario(cuser): for error in user_validator.errors: tkMessageBox.showinfo("Aviso error usuario",error) correcto = False user_validator.errors.remove(error) else: correcto = True if correcto == True: if not pass_validator.validar_password(cpasword): for error in pass_validator.errors: tkMessageBox.showinfo("Aviso error contraseña",error) correcto = True pass_validator.errors.remove(error) else: correcto = False tkMessageBox.showinfo("Aviso", "Usuario y contraseña creados exitosamente") raiz=Tk() raiz.title("ventana primaria") raiz.resizable(1,1) #para permitir agrandar o no el ancho o la altura con el moyuse raiz.iconbitmap("descarga.ico") #raiz.geometry("500x600") raiz.config(bg="cyan") raiz.config(bd=15) raiz.config(relief="groove") miFrame=Frame(raiz) miFrame.pack() miFrame.config(bg="pink") miFrame.config(bd=10) miFrame.config(relief="sunken") miFrame.config(cursor="hand2") miLabel1=Label(miFrame, text="Ingrese sus datos", fg="red",bg="pink",font=("Arial",18)).grid(row=0,column=0,pady="4") nombreusuarioLabel=Label(miFrame, text="Nombre usuario: ",bg="pink").grid(row=3,column=0, sticky="w",pady="1") contrasenaLabel=Label(miFrame, text="Contraseña: ",bg="pink").grid(row=4,column=0,sticky="w",pady="1") user=StringVar() pasword=StringVar() cuadronombreusuario=Entry(miFrame, textvariable=user) cuadronombreusuario.grid(row=3,column=1,pady="1") cuadronombreusuario.config(fg="blue", justify="center") cuadrocontrasena=Entry(miFrame, textvariable=pasword) cuadrocontrasena.grid(row=4,column=1,pady="1") cuadrocontrasena.config(show="*",fg="blue", justify="center") botonEnvio=Button(raiz, text= "Enviar",command=validation) botonEnvio.pack() raiz.mainloop()
interfaz:
Errores al ingresar datos:
Datos ingresados correctamente:
Comentarios
Publicar un comentario