Hola, llevo poco tiempo en Python y estoy realizando un mini proyecto en el que introduzco una serie de datos en una ventana generada con Tkinter y al pulsar en el botón enviar deberían imprimirse los datos por pantalla y almacenarse en una base de datos localhost.
El problema es que al pulsar el botón no se me imprimen las variables por pantalla ni se me almacenan en la base de datos. Lo único que ocurre es que en la base de datos se me añade un registro pero todos los campos están vacíos excepto el id, que lo tengo en autoincremento (La base de datos es en MySQL)
El problema es que al pulsar el botón no se me imprimen las variables por pantalla ni se me almacenan en la base de datos. Lo único que ocurre es que en la base de datos se me añade un registro pero todos los campos están vacíos excepto el id, que lo tengo en autoincremento (La base de datos es en MySQL)
Código:
import pymysql
import tkinter
ventana = tkinter.Tk()
def conexiondb():
#Conexion
db = pymysql.connect("localhost", "root", "", "prueba")
cursor = db.cursor()
try:
cursor.execute("INSERT INTO usuarios (usuario, email, contraseña) VALUES (%s, %s, %s)", (usuariodb, emaildb, contraseñadb))
print("Hecho")
except:
print ("Error")
#Guardar cambios
db.commit()
#Cerrar conexion
db.close()
I=tkinter.StringVar()
U=tkinter.StringVar()
E=tkinter.StringVar()
C=tkinter.StringVar()
#Mostrar widgets
idd = tkinter.Entry(textvariable=I)
usuario = tkinter.Entry(textvariable=U)
usuario.pack()
email = tkinter.Entry(textvariable=E)
email.pack()
contraseña = tkinter.Entry(textvariable=C)
contraseña.pack()
#Guardar lo escrito
iddb = I.get()
usuariodb = U.get()
emaildb = E.get()
contraseñadb = C.get()
print(iddb)
print(usuariodb)
print(emaildb)
print(contraseñadb)
btnenviar = tkinter.Button(text="Enviar", command=conexiondb)
btnenviar.pack()
ventana.mainloop()