jueves, 24 de mayo de 2018

Proyecto Final

Aplicación que inserta, modifica, borra, actualiza y limpia los datos dentro de una tabla

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()