在我的程序中,我使用tkinter作爲gui,並且我擁有用戶可以在其中輸入書的ID和書名的條目本書添加到數據庫中的記錄(使用sqlite的DB)當函數使用存儲在另一個函數中的變量時如何附加到sqlite數據庫
def bookListEntry(event):
top = Toplevel()
top.title("Append to book list")
bookIDLabel = Label(top, text= "bookID: ").grid(row = 0)
bookIDEntry = Entry(top).grid(row = 0, column = 1)
bookNamelabel = Label(top, text = "bookName: ").grid(row = 1)
bookNameEntry = Entry(top).grid(row = 1, column = 1)
quitButton = Button(top, text = "Exit", command = top.destroy)
quitButton.grid(row = 2, column = 1)
appendButton = Button(top, text = "Append", command = appendToBookList)
appendButton.grid(row = 2, column = 2)
def appendToBookList():
c.execute("INSERT INTO bookList VALUES (?, ?);",(bookIDEntry, bookNameEntry))
conn.commit()
不過,我得到錯誤「NameError:名字‘bookIDEntry’沒有定義」 我對全局和局部變量的知識和我米prety確定它不工作,因爲它是一個局部變量,但我想不出一種方法appendToBookList()瞭解條目的值。 此外,另一個問題是,我認爲如果它的工作,那麼它可能會在數據庫的字段中追加變量的名稱,而不是輸入到輸入框中的內容。想知道如何解決這些問題?謝謝
您需要在UI中查詢這些項目的選擇位置。 例如,要求BookNameEntry的值是 – Ajurna
,你必須使用'全局'變量。或從'bookListEntry'和後來的'appendToBookList(變量)'返回變量。或者用所有代碼創建類,然後使用'self.' – furas
這些應該是類方法。而像BookNameEntry這樣的項目應該被分配給自己,這樣它就可以在課程中的任何地方訪問,並且可以通過這種方式共享信息。 – Ajurna