Código Python:
Ver originalfrom Tkinter import *
import sqlite3 as dbapi
fieldnames = ('Autor', 'Titulo')
def makeWidgets( ):
global entries
global label
window = Tk( )
window.title('Agregar libro a la DB')
form = Frame(window)
labels = Frame(form)
values = Frame(form)
labels.pack(side=LEFT)
values.pack(side=RIGHT)
form.pack( )
entries = {}
for label in fieldnames:
Label(labels, text=label).pack( )
ent = Entry(values)
ent.pack( )
entries[label] = ent
Button(window, text="Agregar", command=agregaDato).pack(side=LEFT)
Button(window, text="Cancelar", command=window.quit).pack(side=RIGHT)
return window
def agregaDato():
bbdd = dbapi.connect("bbdd.dat")
cursor = bbdd.cursor()
autor, titulo = (entries[label].get() for label in fieldnames)
cursor.execute("insert into Personas values (?, ?)", (autor, titulo))
bbdd.commit()
bbdd.close()
window = makeWidgets( )
window.mainloop( )
Solo te falto un poco, lo que regresa entries[label] es el entry y por lo tanto todavía te hace falta llamar a un método (get) para obtener el autor y el titulo.
Lo único que le hice a tu query fue parametrizarlo.