Esta aplicación esta programado en Python 3.6.2, utiliza las librerias Tkinter, pyMySQL, el objetivo de este aplicación es insertar, borrar, modificar, limpiar datos de un estudiantes guardolos en una tabla que esta dentro de una base de datos creada en MySQL gestionda por XAMPP.
Esta es la interfaz de la aplicación |
Despues de insertar los datos los muestra dentro de una tabla creada en MySQL, podemos apreciarla desde XAMPP o desde el gestor MySQL Workbench.
Desde XAMPP |
Desde MySQL Workbench |
A continuación presentamos el código del programa:
#-*- coding: utf-8 -*-
from tkinter import *
import pymysql
from pymysql import *
from tkinter import messagebox
def Limpiar():
NumeroC.set('')
NombreS.set('')
EdadS.set('')
NumeroC.configure(state='normal')
def buscar():
try:
con = pymysql.connect(user='root', password='', \
host='localhost', database='escuela2')
cur = con.cursor()
sql = "Select * from estudiante where numeroC='%s'" % NumeroC.get()
cur.execute(sql)
result = cur.fetchone()
NumeroC.set(result[0])
NombreS.set(result[1])
EdadS.set(result[2])
NumeroC.configure(state='disabled')
except:
messagebox.showinfo('Correcto', 'Daatos encontrados')
Limpiar()
def insertar():
try:
con = pymysql.connect(user='root', password='', \
host='localhost', database='escuela2')
cur = con.cursor()
sql = "insert into estudiante values('%s','%s',%s)" \
% (NumeroC.get(), NombreS.get(), EdadS.get())
cur.execute(sql)
con.commit()
con.close()
messagebox.showinfo('Exito', 'DATOS INSERTADOS..')
except:
messagebox.showinfo('Error', 'Error en los datos...')
finally:
Limpiar()
def actualizar():
try:
con = pymysql.connect(user='root', password='', \
host='localhost', database='escuela2')
cur = con.cursor()
sql = "update estudiantes set Nombre='%s', Edad=%s" \
% (NombreS.get(), EdadS.get())
cur.execute(sql)
con.commit()
con.close()
messagebox.showinfo('Exito', 'DATOS ACTUALIZADOS..')
except:
messagebox.showinfo('Error', 'Error en los datos...')
finally:
Limpiar()
def borrar():
try:
con = pymysql.connect(user='root', password='', \
host='localhost', database='escuela2')
cur = con.cursor()
sql = "delete from estudiante where NumeroC='%s'" \
% (NumeroC.get())
cur.execute(sql)
con.commit()
con.close()
messagebox.showinfo('Exito', 'DATOS BORRADOS..')
except:
messagebox.showinfo('Error', 'Error en los datos...')
finally:
Limpiar()
#----------------Ventana-----------------
ventana = Tk()
ventana.geometry("750x300+350+80")
ventana.title("Bienvenido Alumno")
ventana.resizable(width=True, height=True)
try:
ventana.iconbitmap("C:\icono.ico")
except:
print("no hay icono disponible")
#-------------Labels------
LbTitulo= Label(ventana, text="Bienvenido", fg='Red',justify=CENTER, font=("Miramonte", 15))
LbNumeroC = Label(ventana, text="Numero de control:", font=("Miramonte", 15))
LbNombre = Label(ventana, text="Nombre:", font=("Miramonte", 15))
LbEdad = Label(ventana, text="Edad:", font=("Miramonte", 15))
canvas = Canvas(ventana, width=300, height=500)
NumeroC = IntVar()
NombreS = StringVar()
EdadS = IntVar()
#-----------------Entry-----------
EntryNumeroC = Entry(ventana, textvariable=NumeroC, bg='white', fg='dark slate gray', font=("Consolas", 15))
EntryNombre= Entry(ventana, textvariable=NombreS, bg='white', fg='dark slate gray',
font=("Consolas", 15))
EntryEdad= Entry(ventana, textvariable=EdadS, bg='white', fg='dark slate gray', font=("Consolas", 15))
#-----------------Butones----------------
btnbuscar = Button(ventana, text="BUSCAR", command=buscar, bg='violet', fg='white', font=("Consolas", 12))
btninsertar = Button(ventana, text="INSERTAR", command=insertar, bg='violet', fg='white', font=("Consolas", 12))
btnactualizar = Button(ventana, text="ACTUALIZAR", command=actualizar, bg='violet', fg='white', font=("Consolas", 12))
btnborrar = Button(ventana, text="BORRAR", command=borrar, bg='violet', fg='white', font=("Consolas", 12))
btnlimpiar = Button(ventana, text="LIMPIAR", command=Limpiar, bg='violet', fg='white', font=("Consolas", 12))
LbTitulo.grid(row=0, column=2)
LbNumeroC.grid(row= 1, column=1, padx=10, pady=10)
LbNombre.grid(row=2, column=1, padx=10, pady=10)
LbEdad.grid(row=3, column=1, padx=10, pady=10)
EntryNumeroC.grid(row=1,column=2, padx=10, pady=10)
EntryNombre.grid(row=2,column=2, padx=10, pady=10)
EntryEdad.grid(row=3, column=2, padx=10, pady=10)
btninsertar.grid(row=1,column=3, padx=10, pady=10)
btnbuscar.grid(row=2, column=3, padx=10, pady=10)
btnactualizar.grid(row=3,column=3, padx=10, pady=10)
btnborrar.grid(row=4,column=3, padx=10, pady=10)
btnlimpiar.grid(row=5,column=3, padx=10, pady=10)
ventana.mainloop()