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   
          
     
   

phyton project
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

phyton project
Consultamos en mysql
phyton project
Se va modificar hasta llegar al resultado final.