Código Python:
Ver original- from 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.