Python - Las variables no se imprimen por pantalla ni se me almacenan los datos

 
Vista:

Las variables no se imprimen por pantalla ni se me almacenan los datos

Publicado por Angel (1 intervención) el 08/06/2020 20:34:06
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)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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()
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder