miércoles, 23 de mayo de 2018

Proyecto de interfaz Python-Mysql

Codigo:

import tkMessageBox
from Tkinter import *
import mysql.connector
import  ttk

v0 = Tk()
v0.title("Base de datos")
v0.geometry("700x500")

def table():
    root = Tk()
    global treeVie
    tab= ttk.Treeview(root)
    tab.grid(row=0, column=0, columnspan=5)

    tab["columns"] = ["Numero de Control", "Nombre", "Apellido Paterno", "Apellido Materno", "Correo"]
    tab["show"] = "headings"
    tab.heading("Numero de Control", text="ID")
    tab.column("Numero de Control", minwidth=0, width=100, stretch=NO)
    tab.heading("Nombre", text="Nombre")
    tab.column("Nombre", minwidth=0, width=150, stretch=NO)
    tab.heading("Apellido Paterno", text="Apellido Paterno")
    tab.column("Apellido Paterno", minwidth=0, width=100, stretch=NO)
    tab.heading("Apellido Materno", text="Apellido Materno")
    tab.column("Apellido Materno", minwidth=0, width=100, stretch=NO)
    tab.heading("Correo", text="Correo")
    tab.column("Correo", minwidth=0, width=200, stretch=NO)

    sql = "select * from alumnos"
    cursor.execute(sql)
    l=0
    c=0
    for row in cursor.fetchall():
        tab.insert("", l, c, values=row)
        l=l + 1
        c=c+1
    root.mainloop()

def insert():
    def okin():
        dato1 = (caja1.get())
        dato2 = caja2.get()
        dato3 = caja3.get()
        dato4 = caja4.get()
        dato5 = caja5.get()
        values = "call tecnologico.students(%s,%s,%s,%s,%s,%s)"
        try:
            cursor.execute(values, (dato1, dato2, dato3, dato4, dato5,'nuevo'))
            conexion.commit()
            tkMessageBox.showinfo("Mensaje", "Se Han insertado correctamente")
            caja1.delete(0, 20)
            caja2.delete(0, 20)
            caja3.delete(0, 20)
            caja4.delete(0, 20)
            caja5.delete(0, 20)
        except:
            tkMessageBox.showinfo("Mensaje", "Error al insertar los datos")
    v1 = Toplevel(v0)
    v1.deiconify()
    v1.geometry("400x500")

    hola = Label(v1, text="Inserte datos", height=2, font="Verdana 14")
    hola.grid(row=1,column=1)

    numero = Label(v1, text="No. de Control :", height=2)
    numero.grid(row=2, column=1)
    n1 = StringVar()
    caja1 = Entry(v1, textvariable=n1)
    caja1.grid(row=2, column=2)

    nombre = Label(v1, text="Nombre : ", height=2)
    nombre.grid(row=3, column=1)
    n2 = StringVar()
    caja2 = Entry(v1, textvariable=n2)
    caja2.grid(row=3, column=2)

    apellido1 = Label(v1, text="Apellido Paterno : ", height=2)
    apellido1.grid(row=4, column=1)
    n3 = StringVar()
    caja3 = Entry(v1, textvariable=n3)
    caja3.grid(row=4, column=2)

    apellido2 = Label(v1, text="Apellido Materno: ", height=2)
    apellido2.grid(row=5, column=1)
    n4 = StringVar()
    caja4 = Entry(v1, textvariable=n4)
    caja4.grid(row=5, column=2)

    correo = Label(v1, text="Correo : ", height=2)
    correo.grid(row=6, column=1)
    n5 = StringVar()
    caja5 = Entry(v1, textvariable=n5)
    caja5.grid(row=6, column=2)

    b4 = Button(v1, text="Regresar ", command=lambda: v1.destroy())
    b4.grid(row=7,column=1)
    b1 = Button(v1, text="Insertar", command=lambda: okin(), width=15, height=2)
    b1.grid(row=7, column=2)

def delete():
    def okin():
        dato1 = float(caja1.get())
        values = "call tecnologico.students(%s,%s,%s,%s,%s,%s)"
        try:
            cursor.execute(values, (dato1, '', '', '', '','eliminar'))
            conexion.commit()
            tkMessageBox.showinfo("Mensaje", "Se ha borrado correctamente")
            caja1.delete(0, 20)
        except:
            tkMessageBox.showinfo("Mensaje", "Error al borrar los datos")
    v1 = Toplevel(v0)
    v1.deiconify()
    v1.geometry("400x200")

    hola = Label(v1, text="Borrar dato", height=2, font="Verdana 14")
    hola.grid(row=1, column=2)
    numero = Label(v1, text="No. de Control :", height=2)
    numero.grid(row=2, column=1)

    n1 = StringVar()
    caja1 = Entry(v1, textvariable=n1)
    caja1.grid(row=2, column=2)

    b4 = Button(v1, text="Regresar ", command=lambda: v1.destroy())
    b4.grid(row=3, column=1)
    b5 = Button(v1, text="Borrar ", command=lambda: okin())
    b5.grid(row=3,column=2)

def update():
    def okin():
        dato1 = float(caja1.get())
        dato2 = caja2.get()
        dato3 = caja3.get()
        dato4 = caja4.get()
        dato5 = caja5.get()
        values = "call tecnologico.students(%s,%s,%s,%s,%s,%s)"
        try:
            cursor.execute(values, (dato1, dato2, dato3, dato4, dato5,'editar'))
            conexion.commit()
            tkMessageBox.showinfo("Mensaje", "Se Han actualizado correctamente")
            caja1.delete(0, 20)
            caja2.delete(0, 20)
            caja3.delete(0, 20)
            caja4.delete(0, 20)
            caja5.delete(0, 20)
        except:
            tkMessageBox.showinfo("Mensaje", "Error al actualizar los datos")
    def selec(click):
        curItem = tab.focus()
        datitos = tab.set(curItem)
        caja2.delete(0, END)
        caja2.insert(0, datitos["Nombre"])
        caja1.delete(0, END)
        caja1.insert(0, datitos["Numero de Control"])
        caja3.delete(0, END)
        caja3.insert(0, datitos["Apellido Paterno"])
        caja4.delete(0, END)
        caja4.insert(0, datitos["Apellido Materno"])
        caja5.delete(0, END)
        caja5.insert(0, datitos["Correo"])
    v1 = Toplevel(v0)
    v1.deiconify()
    v1.geometry("700x500")

    hola = Label(v1, text="Actualizar datos", height=2, font="Verdana 14")
    hola.grid(row=1, column=1)

    numero = Label(v1, text="No. de Control :", height=2)
    numero.grid(row=2, column=1)
    n1 = StringVar()
    caja1 = Entry(v1, textvariable=n1)
    caja1.grid(row=2, column=2)

    nombre = Label(v1, text="Nombre : ", height=2)
    nombre.grid(row=3, column=1)
    n2 = StringVar()
    caja2 = Entry(v1, textvariable=n2)
    caja2.grid(row=3, column=2)

    apellido1 = Label(v1, text="Apellido Paterno : ", height=2)
    apellido1.grid(row=4, column=1)
    n3 = StringVar()
    caja3 = Entry(v1, textvariable=n3)
    caja3.grid(row=4, column=2)

    apellido2 = Label(v1, text="Apellido Materno: ", height=2)
    apellido2.grid(row=5, column=1)
    n4 = StringVar()
    caja4 = Entry(v1, textvariable=n4)
    caja4.grid(row=5, column=2)

    correo = Label(v1, text="Correo : ", height=2)
    correo.grid(row=6, column=1)
    n5 = StringVar()
    caja5 = Entry(v1, textvariable=n5)
    caja5.grid(row=6, column=2)

    b4 = Button(v1, text="Regresar ", command=lambda: v1.destroy())
    b4.grid(row=7, column=1)
    b1 = Button(v1, text="Modificar", command=lambda: okin(), width=15, height=2)
    b1.grid(row=7, column=2)

    tab = ttk.Treeview(v1)
    tab.grid(row=8, column=1, columnspan=5)

    tab["columns"] = ["Numero de Control", "Nombre", "Apellido Paterno", "Apellido Materno", "Correo"]
    tab["show"] = "headings"
    tab.heading("Numero de Control", text="No. de control")
    tab.column("Numero de Control", minwidth=0, width=100, stretch=NO)
    tab.heading("Nombre", text="Nombre")
    tab.column("Nombre", minwidth=0, width=150, stretch=NO)
    tab.heading("Apellido Paterno", text="Apellido Paterno")
    tab.column("Apellido Paterno", minwidth=0, width=100, stretch=NO)
    tab.heading("Apellido Materno", text="Apellido Materno")
    tab.column("Apellido Materno", minwidth=0, width=100, stretch=NO)
    tab.heading("Correo", text="Correo")
    tab.column("Correo", minwidth=0, width=200, stretch=NO)

    sql = "select * from alumnos"
    cursor.execute(sql)
    l = 0
    c = 0
    for row in cursor.fetchall():
        tab.insert("", l, c, values=row)
        l = l + 1
        c = c + 1

    tab.bind('<ButtonRelease-1>', selec)

def consult():
    def okin():
        dato1 = float(caja1.get())
        values = "Select * from alumnos where num_con=%s"
        try:
            cursor.execute(values,(dato1))
            conexion.commit()
            tkMessageBox.showinfo("Mensaje", "Se Han actualizado correctamente")
            caja1.delete(0, 20)
        except:
            tkMessageBox.showinfo("Mensaje", "Error al actualizar los datos")

    v1 = Toplevel(v0)
    v1.deiconify()
    v1.geometry("700x400")


    hola = Label(v1, text="Consular dato", height=2, font="Verdana 14")
    hola.grid(row=1, column=2)
    numero = Label(v1, text="No. de Control :", height=2)
    numero.grid(row=2, column=1)

    n1 = StringVar()
    caja1 = Entry(v1, textvariable=n1)
    caja1.grid(row=2, column=2)


    b4 = Button(v1, text="Regresar ",height=2, command=lambda: v1.destroy())
    b4.grid(row=3, column=1)
    b5 = Button(v1, text="consultar ",height=2, command= okin)
    b5.grid(row=3, column=2)



dato={
    "user":"root",
    "password":"davidmysql",
    "database":"tecnologico",
    "host":"127.0.0.1"
}

conexion = mysql.connector.connect(**dato)

cursor = conexion.cursor()

hola = Label(v0,text="Hola, Elija la operacion deseada", height=2, font="Verdana 14")
hola.pack()

b1 = Button(v0, text = "Insertar", command = insert,width=15, height=2)
b1.pack()

b2 = Button(v0, text = "Borrar", command = delete,width=15, height=2)
b2.pack()

b3 = Button(v0, text = "Modificar", command = update,width=15, height=2)
b3.pack()

b4 = Button(v0, text = "Consultar Tabla", command = table,width=15, height=2)
b4.pack()

v0.mainloop()

No hay comentarios:

Publicar un comentario