Paso a paso: Desarrollando una aplicación CRUD con Python, Tkinter y MySQL en 2024 – ¡Muy fácil!

Posted by

En esta tutorial, vamos a aprender cómo crear una aplicación CRUD (Crear, Leer, Actualizar, Eliminar) utilizando Python, Tkinter y MySQL paso a paso. Esto nos permitirá crear una interfaz gráfica para interactuar con una base de datos MySQL mediante operaciones CRUD. ¡Empecemos!

Paso 1: Configurar el entorno de desarrollo
Antes de empezar, asegúrate de tener instalado Python en tu computadora. También necesitarás instalar las bibliotecas Tkinter y MySQL para Python. Puedes instalarlos utilizando pip, el gestor de paquetes de Python, con los siguientes comandos:

pip install tkinter
pip install mysql-connector-python

Paso 2: Crear la base de datos MySQL
Abre tu servidor MySQL y crea una nueva base de datos con el nombre "crud_python_tkinter_mysql". Dentro de esta base de datos, crea una tabla llamada "clientes" con los siguientes campos:

  • id (int, clave primaria)
  • nombre (varchar)
  • apellido (varchar)
  • email (varchar)

Paso 3: Crear la aplicación CRUD Python + Tkinter
Crea un nuevo archivo Python y comencemos a escribir el código para nuestra aplicación CRUD. Primero, importaremos las bibliotecas necesarias y estableceremos la conexión con la base de datos MySQL. A continuación, definiremos las funciones para las operaciones CRUD.

import tkinter as tk
import mysql.connector

# Conectar a la base de datos MySQL
conexion = mysql.connector.connect(
    host="localhost",
    user="tu_usuario",
    password="tu_contraseña",
    database="crud_python_tkinter_mysql"
)

cursor = conexion.cursor()

# Funciones CRUD
def crear_cliente():
    nombre = entrada_nombre.get()
    apellido = entrada_apellido.get()
    email = entrada_email.get()

    cursor.execute("INSERT INTO clientes (nombre, apellido, email) VALUES (%s, %s, %s)", (nombre, apellido, email))
    conexion.commit()

def leer_clientes():
    cursor.execute("SELECT * FROM clientes")
    clientes = cursor.fetchall()

    for cliente in clientes:
        lista_clientes.insert(tk.END, cliente)

def actualizar_cliente():
    id = entrada_id.get()
    nombre = entrada_nombre.get()
    apellido = entrada_apellido.get()
    email = entrada_email.get()

    cursor.execute("UPDATE clientes SET nombre=%s, apellido=%s, email=%s WHERE id=%s", (nombre, apellido, email, id))
    conexion.commit()

def eliminar_cliente():
    id = entrada_id.get()

    cursor.execute("DELETE FROM clientes WHERE id=%s", (id,))
    conexion.commit()

# Interfaz de la aplicación
root = tk.Tk()
root.title("CRUD Python + Tkinter + MySQL")

etiqueta_id = tk.Label(root, text="ID:")
etiqueta_id.pack()

entrada_id = tk.Entry(root)
entrada_id.pack()

etiqueta_nombre = tk.Label(root, text="Nombre:")
etiqueta_nombre.pack()

entrada_nombre = tk.Entry(root)
entrada_nombre.pack()

etiqueta_apellido = tk.Label(root, text="Apellido:")
etiqueta_apellido.pack()

entrada_apellido = tk.Entry(root)
entrada_apellido.pack()

etiqueta_email = tk.Label(root, text="Email:")
etiqueta_email.pack()

entrada_email = tk.Entry(root)
entrada_email.pack()

boton_crear = tk.Button(root, text="Crear Cliente", command=crear_cliente)
boton_crear.pack()

boton_leer = tk.Button(root, text="Leer Clientes", command=leer_clientes)
boton_leer.pack()

boton_actualizar = tk.Button(root, text="Actualizar Cliente", command=actualizar_cliente)
boton_actualizar.pack()

boton_eliminar = tk.Button(root, text="Eliminar Cliente", command=eliminar_cliente)
boton_eliminar.pack()

lista_clientes = tk.Listbox(root)
lista_clientes.pack()

root.mainloop()

Una vez que hayas completado el código, ejecuta el archivo Python y verás la interfaz de la aplicación CRUD. Desde aquí, puedes crear, leer, actualizar y eliminar clientes en la base de datos MySQL que has creado.

¡Felicidades! Ahora has aprendido cómo crear una aplicación CRUD utilizando Python, Tkinter y MySQL paso a paso de forma fácil y sencilla. ¡Espero que esta tutorial te haya sido útil y te haya permitido aprender más sobre el desarrollo de aplicaciones con Python y bases de datos!

0 0 votes
Article Rating
4 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@EdwinO
3 months ago
@platanopoweroficial
3 months ago

Métele ganas a Python. Esos vídeos tendrán mucha demanda y explicas bien.

@platanopoweroficial
3 months ago

Tremendo brother. Explicas bastante bien.

@juniorreyes3718
3 months ago

Muchas gracias 😀