通过Tkinter条目将数据插入数据库

时间:2017-04-10 22:14:01

标签: python mysql tkinter

我希望有一个tkinter gui,它有一个条目小部件和一个按钮,用户可以在输入字段中输入一个数字,然后单击“提交”按钮。按下按钮时,我希望他的条目存储到我设置的数据库中。

到目前为止,我的代码如下:

db = Mysqldb.connect('localhost', 'root', '----', '----', 'design')

cursor = db.cursor()

def submit_it():
    cursor.execute('INSERT INTO time VALUES (data.get())')

data = Entry(gui2,  text = 'food name')

data.place(x=100,y=100)

submit = Button(gui2, text = 'submit', command = submit_it())

submit.place(x=200,y=200)    

我将非常感谢任何有关如何使其工作的想法...再次,我想要做的就是让用户在输入字段中输入内容并单击提交按钮。完成后,他的输入将保存到我的数据库中:)

2 个答案:

答案 0 :(得分:1)

您需要更改两件事,将data.get()作为参数放置,而不是直接放在操作中。并且在将其作为按钮的命令传递时不要调用submit_it。

db = Mysqldb.connect('localhost', 'root', '----', '----', 'design')
cursor = db.cursor()

def submit_it():
    cursor.execute('INSERT INTO time VALUES (%s)', (data.get(),)) # place data.get() as a parameter as a type or list 

data = Entry(gui2,  text = 'food name')
data.place(x=100,y=100)

submit = Button(gui2, text = 'submit', command = submit_it) # don't call submit_it, get rid of the ()
submit.place(x=200,y=200)  

您可能还希望稍后使用db.commit()db.close()提交并关闭数据库以保存更改。

答案 1 :(得分:0)

对于python 3.7,您不应调用submit_it()函数,而应将其保留为submit_it
为了传递用户输入,请使用%s而不是直接使用data.get()。

db = Mysqldb.connect('localhost', 'root', '----', '----', 'design')

cursor = db.cursor()

user_input = data.get()

def submit_it():
    cursor.execute('INSERT INTO time VALUES (%s)', user_input)

data = Entry(gui2,  text = 'food name')

data.place(x=100,y=100)

submit = Button(gui2, text = 'submit', command = submit_it)

submit.place(x=200,y=200) 

要一次插入多个值,请传递具有用户输入值的变量列表或元组。

多值插入示例:

# suppose you have 3 inputs as name, quantity, color
# then use...
Name = name.get()
Quantity = quantity.get()
Color = color.get() 
def submit_it():
        cursor.execute('INSERT INTO time(name, quantity, color)VALUES (%s, %s, %s)', (Name, Quantity, Color))

另外,要成功将值添加到数据库中,u应该db.commit()db.close()