Ir al contenido principal

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:

Comentarios

Entradas populares de este blog

Comandos CMD

Todas las versiones de Windows incluyen una serie de comandos que permiten transmitir órdenes directamente al sistema operativo. Son simples instrucciones que se pueden usar de formas diferentes, con la herramienta Símbolo del Sistema o usándolos en archivos batch. El Símbolo del Sistema, Consola de CMD o intérprete de comandos, es una herramienta incluida en todas las versiones de Windows.  Cls:   Este comando limpia la ventana de CMD eliminando el contenido de operaciones anteriores. Exit:   Cierra la ventana de CMD. Si se ha iniciado un comando de procesado por lotes cierra el proceso, pero mantiene CMD abierto. Help:   Muestra todos los comandos disponibles y una breve descripción. Si quieres obtener información sobre un comando en concreto o  cómo formar la sintaxis de un determinado comando , escribe el comando seguido de una barra diagonal y un signo de interrogación. Por ejemplo:  cd /? Cd:  Este es uno de los comandos más útiles par...

Operación y mantenimiento

Archivos log del SGBD Todas las bases de datos de SQL Server tienen un registro de transacciones que registra todas las transacciones y las modificaciones que cada transacción realiza en la base de datos. El registro de transacciones es un componente esencial de la base de datos. Si hay un error del sistema, ese registro será necesario para devolver la base de datos a un estado coherente. El registro de transacciones se debe truncar periódicamente para evitar que se llene. Operaciones compatibles El registro de transacciones permite las siguientes operaciones: Recuperación de transacciones individuales. Recuperación de todas las transacciones incompletas cuando se inicia SQL Server. Puesta al día de una base de datos, un archivo, un grupo de archivos o una página restaurados hasta el momento exacto del error. Permitir replicación transaccional. Compatibilidad con soluciones de alta disponibilidad y recuperación ante desastres: Grupos de disponib...

1.4 Aspectos matematicos de la graficacion (geometria fractal)

La geometría es fundamental para el desarrollo de software de gráficos. Los científicos y programadores de computadoras estudian geometría fractal, geometría descriptiva y perspectiva lineal, que es la geometría 3D, para desarrollar matemáticamente el dibujo de objetos en vez de dibujar con un mouse o un bolígrafo y un lápiz. Para entender que es la geometría fractal, se debe primero conocer el significado de "Fractal", el cual es un ente geométrico el cual en su desarrollo espacial se va produciendo a si mismo cada vez a una escala menor.  ¿Que es la geometria fractal? La geometría fractal es el estudio de los métodos de dibujo automatizados que se basan en una forma geométrica específica o conjunto de formas geométricas específicas. A menudo, los métodos fractales implican la inscripción repetida de una forma geométrica dentro de otra igual. Un ejemplo, es cuando un triángulo equilátero se inscribe dentro de otro triángulo equilátero, en repetidas ocasione...