Ir al contenido principal

Comprobacion de password y usuario con metodos en tkinter

# -*- coding: utf-8 -*-
from Tkinter import *
import tkMessageBox

def usercomp():
    cuser=user.get()
    longitud=len(cuser)
    notnum=cuser.isalnum()
    if notnum == False:
        tkMessageBox.showinfo("Error", "El nombre de usuario puede contener solo letras y números")
    elif longitud < 6:
        tkMessageBox.showinfo("Error","El nombre de usuario debe contener al menos 6 caracteres")
    elif longitud > 12:
        tkMessageBox.showinfo("Error", "El nombre de usuario no puede contener más de 12 caracteres")
    elif longitud > 5 and longitud < 13 and notnum == True:
        return True

def clavecomp():
    cpasword=pasword.get()
    validar = False  # que se vayan cumpliendo los requisitos uno a uno.
    long = len(cpasword)  # Calcula la longitud de la contraseña
    espacio = False  # variable para identificar espacios
    mayuscula = False  # variable para identificar letras mayúsculas
    minuscula = False  # variable para contar identificar letras minúsculas
    numeros = False  # variable para identificar números
    y = cpasword.isalnum()  # si es alfanumérica retona True
    correcto = True  # verifica que hayan mayuscula, minuscula, numeros y no alfanuméricos

    for carac in cpasword:  # ciclo for que recorre caracter por caracter en la contraseña

        if carac.isspace() == True:  # Saber si el caracter es un espacio
            espacio = True  # si encuentra un espacio se cambia el valor user

        if carac.isupper() == True:  # saber si hay mayuscula
            mayuscula = True  # acumulador o contador de mayusculas

        if carac.islower() == True:  # saber si hay minúsculas
            minuscula = True  # acumulador o contador de minúsculas

        if carac.isdigit() == True:  # saber si hay números
            numeros = True  # acumulador o contador de numeros

    if espacio == True:  # hay espacios en blanco
        tkMessageBox.showinfo("Error en la contraseña", "La contraseña no puede contener espacios")
    else:
        validar = True  # se cumple el primer requisito que no hayan espacios

    if long < 8 and validar == True:
        tkMessageBox.showinfo("Error en la contraseña ","Mínimo 8 caracteres")
        validar = False  # cambia a Flase si no se cumple el requisito móinimo de caracteres

    if mayuscula == True and minuscula == True and numeros == True and y == False and validar == True:
        validar = True  # Cumple el requisito de tener mayuscula, minuscula, numeros y no alfanuméricos
    else:
        correcto = False  # uno o mas requisitos de mayuscula, minuscula, numeros y no alfanuméricos no se cumple

    if validar == True and correcto == False:
        tkMessageBox.showinfo("Aviso",
            "La contraseña elegida no es segura: debe contener letras minúsculas, mayúsculas, números y al menos 1 carácter no alfanumérico")

    if validar == True and correcto == True:
        return True

def validation():
    correcto = False
    if correcto == False:

        if usercomp() == True:

            correcto = True

            if correcto == True:
                if clavecomp() == True:
                    tkMessageBox.showinfo("Aviso", "Usuario y contraseña creados exitosamente")
                    correcto = False

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

Django

¿Qué es Django? Django es un framework web diseñado para realizar aplicaciones de cualquier complejidad   en unos tiempos muy razonables. Está escrito en Python y tiene una comunidad muy amplia, que está en continuo crecimiento. Webs que utilizan Django Desde la página web de Django podemos ver unos destacados, en los que podemos ver algunas webs como la de  National Geografic, Disqus, Instagram, Mozilla Foundation y Pinterest , que son webs con un tráfico altísimo y utilizan Django. Por qué usar Django Los motivos principales para usar Django son: Es muy rápido : Si tenéis una startup, tenéis prisa por terminar vuestro proyecto o, simplemente, queréis reducir costes, con Django podéis construir una aplicación muy buena en poco tiempo. Viene bien cargado : Cualquier cosa que necesitéis realizar, ya estará implementada, sólo hay que adaptarla a vuestras necesidades. Ya sea porque hay módulos de la comunidad, por cualquier paquete Python que encontréis o...

Workbench evidencias

Evidencia de la instalacion de Worbench Tablas: Estructura de las tablas: Conexion Python y mysql import pymysql try: conexion = pymysql.connect(host='localhost',user='root',password='cuaj990804',db='empresa') print("Conexion correcta") except (pymysql.err.OperationalError, pymysql.err.InternalError) as e: print("Ocurrio un error al conectar: ", e)

Practicas en IDE

Programas. Practica 1 Suma de 2 valores con sleep. Código: #PROGRAMA_SUMA_BASICA import time print"Ingresa un primer valor:" a=int(input("")) print "Ingresa un segundo valor:" b=int(input("")) suma= a + b print"Suma de valores ingresados:" print (suma) time.sleep(5) Corrida del programa: Practica 2 Manejo de matematicas. Código: Corrida del programa: Practica 3 If con edad. Codigo Corrida del programa: Practica 4 If implementado de otra forma Practica 5 If con funciones. Practica 6 Numeros con if Practica 7 Segunda forma de implementar el if. Practica 8 Numeros positivos y negativos. Practica 9 Métodos con if. Practica 10 Múltiplos de números métodos. Practica 11 Califiaciones Practica 12  Programa de dulces. Practica 13 Programa prestamos. Programa 14 Otra...