Insertar datos
Los datos capturados los vamos a insertar en una tabla llamada usuario y la base de datos vamos a llamar keygendb lo vamos a realizar con mysql creamos las siguientes sentencias:
CREATE SCHEMA `keygendb` DEFAULT CHARACTER SET utf8 ;
CREATE TABLE `keygendb`.`usuario` (
`nombre` VARCHAR(100) NOT NULL,
`apellido_paterno` VARCHAR(100) NOT NULL,
`apellido_materno` VARCHAR(100) NULL,
`email` VARCHAR(100) NOT NULL,
`whatsapp` VARCHAR(20) NOT NULL,
`puesto` VARCHAR(45) NOT NULL,
`password` VARCHAR(10) NOT NULL,
PRIMARY KEY (`email`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
Conectar con mysql desde python
Vamos a utlizar el conector mysql-connector-python primero lo tenemos el paquete en python desde línea de cmd con el siguiente comando:
pip install mysql-connector-python
Escribimos el siguiente código
# coding=utf-8
import tkinter as tk
import secrets
import string
import mysql.connector
from tkinter import font, ttk
from tkinter import messagebox as mb
# Definir la función que se ejecutará cuando se haga clic en el botón
def enviar_password():
if (len(nombre.get().strip()) and len(apellidoPaterno.get().strip())
and len(email.get().strip()) and len(whatsapp.get().strip())):
password=Generar_password()
mydb = mysql.connector.connect(
host="localhost",
user="admin",
passwd="adminlara",
database="keygendb"
)
mycursor = mydb.cursor()
sql = "INSERT INTO usuario (nombre,apellido_paterno,apellido_materno,email,whatsapp,puesto,password) VALUES (%s,%s,%s,%s,%s,%s,%s)"
parameters=(nombre.get(),apellidoPaterno.get(),apellidoMaterno.get(),email.get(),
whatsapp.get(),puesto.get(),password)
mycursor.execute(sql, parameters)
mydb.commit()
mycursor.close()
mydb.close()
mb.showinfo("Información", f"La contraseña {password} fue enviada")
else:
mb.showerror("Error","Campo vacío")
def Generar_password():
letters = string.ascii_letters
digits = string.digits
special_chars = string.punctuation
alphabet = letters + digits + special_chars
pwd_length = 8
pwd = ''
for i in range(pwd_length):
pwd += ''.join(secrets.choice(alphabet))
return pwd
# Crear la ventana principal
ventana = tk.Tk()
ventana.title("SendKeyGen")
ventana.geometry("500x600")
label = tk.Label(ventana, text="Sendkeygen")
label.pack(anchor="center")
label.config(fg="white", # Foreground
bg="gray", # Background
font=("Verdana",24))
# Crear los widgets del formulario
labelNombre=tk.Label(ventana, text="Nombre:")
labelNombre.pack(anchor="nw")
labelNombre.config(fg="white", # Foreground
bg="gray", # Background
font=("Verdana",14))
nombre = ttk.Entry(font=font.Font(family="Times", size=14),width=50)
nombre.pack(anchor="nw")
labelNombre=tk.Label(ventana, text="Apellido Paterno:")
labelNombre.pack(anchor="nw")
labelNombre.config(fg="white", # Foreground
bg="gray", # Background
font=("Verdana",14))
apellidoPaterno = ttk.Entry(font=font.Font(family="Times", size=14),width=50)
apellidoPaterno.pack(anchor="nw")
labelNombre=tk.Label(ventana, text="Apellido Materno:")
labelNombre.pack(anchor="nw")
labelNombre.config(fg="white", # Foreground
bg="gray", # Background
font=("Verdana",14))
apellidoMaterno = ttk.Entry(font=font.Font(family="Times", size=14),width=50)
apellidoMaterno.pack(anchor="nw")
labelNombre=tk.Label(ventana, text="Email:")
labelNombre.pack(anchor="nw")
labelNombre.config(fg="white", # Foreground
bg="gray", # Background
font=("Verdana",14))
email = ttk.Entry(font=font.Font(family="Times", size=14),width=50)
email.pack(anchor="nw")
labelNombre=tk.Label(ventana, text="WhatsApp:")
labelNombre.pack(anchor="nw")
labelNombre.config(fg="white", # Foreground
bg="gray", # Background
font=("Verdana",14))
whatsapp = ttk.Entry(font=font.Font(family="Times", size=14),width=15)
whatsapp.pack(anchor="nw")
labelNombre=tk.Label(ventana, text="Puesto:")
labelNombre.pack(anchor="nw")
labelNombre.config(fg="white", # Foreground
bg="gray", # Background
font=("Verdana",14))
puesto = ttk.Combobox(values=["Administrador", "Gerente", "Empleado"], font=font.Font(size=15))
puesto.current(0)
puesto.pack(anchor="nw")
boton_enviar = tk.Button(ventana, text="Enviar Password", command=enviar_password,
width=30, height=5,bg="gray",fg="white",font=("Comic Sans", 10,"bold"))
boton_enviar.pack(anchor="center")
# Mostrar la ventana
ventana.mainloop()
Insertando el registro
Consultamos en mysql
Se va modificar hasta llegar al resultado final.