Я пытаюсь создать небольшую программу, которая сохраняет данные в базе данных sqlite. Дело в том, что я не могу вставить какие-либо данные, кроме пустых вставок. Я не знаю, что я делаю неправильно.Продолжайте получать пустые вставки в Python
Заранее благодарен! Вот мой код.
class Vista(Frame):
def __init__(self, master):
Frame.__init__(self,master)
self.grid()
self.pack()
self.create_widgets()
def insertar(self, n, v):
try:
cursor.execute('''INSERT INTO passwords (name, value) VALUES (?,?)''', (n.get(), v.get()))
con.commit()
except Exception as e:
# Roll back any change if something goes wrong
con.rollback()
print "Error %s;" %e.args[0]
sys.exit(1)
finally:
if con:
con.close()
def create_widgets(self):
self.title_nombre = Label(self, text="Nombre:")
self.title_nombre.grid(row = 1, column = 1, sticky = W, pady=(10, 0))
nom = StringVar()
pas = StringVar()
self.nombre = Entry(self, textvariable=nom)
self.nombre.grid(row = 1, column = 2, sticky = W, pady=(10, 0))
self.title_passwd = Label(self,text="Password:")
self.title_passwd.grid(row = 2, column = 1, sticky = W)
self.passwd = Entry(self, textvariable= pas)
self.passwd.grid(row = 2, column = 2, sticky = W)
self.boton = Button(text="Añadir", command=self.insertar(nom, pas))
self.boton.grid(columnspan=1, row=3, sticky = W, pady=(10,0), padx=(5,0))
root = Tk()
root.title("Contraseña")
root.geometry("250x150")
root.eval('tk::PlaceWindow %s center' % root.winfo_pathname(root.winfo_id()))
app = Vista(root)
app.grid(column=0, row=0)
app.columnconfigure(0, weight=1)
app.rowconfigure(0, weight=1)
app.mainloop()
Спасибо, я не знал, как применить первый, но второй один работал просто отлично. Я не понимаю, почему это работает. – ffuentes
@Francisco: Оба они должны работать нормально. Вторая - более короткая версия первой. – Blender