亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

嘗試調用函數以提交給 MySQL 時如何修復“未定義變量”

嘗試調用函數以提交給 MySQL 時如何修復“未定義變量”

料青山看我應如是 2022-01-05 12:09:46
我是 Tkinter 的新手,并試圖創建一個函數,該函數將連接到我的 GUI 中的“提交”按鈕,以便它將數據輸入到我的 MySQL 數據庫中。反饋告訴我,'itemCode_entry' is not defined在def inv_submit():函數中。我試圖itemCode_entry從def inv_menu():函數中獲取輸入并將其輸入到def inv_submit():MySQL 語句中。這是我得到的反饋。Exception in Tkinter callbackTraceback (most recent call last):  File "C:\Users\darre\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 1702, in __call__    return self.func(*args)  File "Import_Test_Code2.py", line 103, in <lambda>    submit_btn = Button(btm_frame, text='Submit', bg=color1, command= lambda : inv_submit())  File "Import_Test_Code2.py", line 207, in inv_submit    item = itemCode_entry.get()NameError: name 'itemCode_entry' is not definedfrom tkinter import *import mysql.connector#  ======================MySQL Connection================================================================mydb = mysql.connector.connect(    host = "localhost",    user = "root",    passwd = "....",    database = "testdb",    )# Create Cursor Instancemy_cursor = mydb.cursor()# Create Database#my_cursor.execute("CREATE DATABASE trialProjectdb")root = Tk()root.geometry('500x500')root.title('Database Control')color1 = 'grey77'color2 = 'grey88'item = int()brandName = StringVar()#unitsPer = int()units = int()cost = float()#  ======================Frames================================================================top_frame = Frame(root, width=500, height=80, bg=color1)top_frame.pack(side=TOP)btm_frame = Frame(root, width=500, height=500, bg=color2)btm_frame.pack(side=TOP)#  ======================Inventory=============================================================inv_btn = Button(top_frame, text='Inventory', width=20,             command= lambda : inv_menu())inv_btn.place(x=0, y=0)submit_btn一旦我在“庫存”表單中填寫了信息,我希望“提交”按鈕將數據提交給 MySQL 以更新數據庫inv_menu()。
查看完整描述

2 回答

?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

使其成為全局條目小部件:


global itemCode_entry

itemCode_entry = Entry(btm_frame, textvariable=item)

itemCode_entry.place(x=90, y=60)


查看完整回答
反對 回復 2022-01-05
?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

您遇到的問題是范圍界定。例如,item = itemCode_entry.get()在您的 inv_submit() 函數中。這將導致一個問題,因為在“inv_submit()”函數的范圍內以及程序的全局范圍內都找不到“itemCode_entry.get()”。


一個可能的解決方案是這樣的:



dev inv_menu():

...

return itemCode_entry, brand_entry, units_entry, unitCost_entry

在你的


dev inv_submit():

item, brandName, units, cost = inv_menu()


查看完整回答
反對 回復 2022-01-05
  • 2 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號