登录按钮按下后,如何获取Tkinter entry的值并传递给SQL查询?
Posted
技术标签:
【中文标题】登录按钮按下后,如何获取Tkinter entry的值并传递给SQL查询?【英文标题】:After the login Button is pressed, how to obtain the value of Tkinter entry and pass it to the SQL query? 【发布时间】:2015-03-08 15:22:02 【问题描述】:在下面的代码中,分别为用户名和密码创建了两个 tkinter 条目 entry1 和 entry2。我正在寻找的是将 tkinter 条目中输入的值存储到数据库表 admin_details 中。但什么都没有通过。我也不知道使用条件,即“在按下按钮登录后检索插入 tkinter 条目中的值并将数据存储在表中。” 代码如下:
import mysqldb as mdb
from Tkinter import *
from tkMessageBox import *
root = Tk()
test=StringVar()
label1=Label(root,text='Username').grid()
entry1 = Entry(root, textvariable='uname')
entry1.grid()
label2=Label(root,text='password').grid()
entry2 = Entry(root, textvariable='pword')
entry2.grid()
print entry2
uname = entry1.get()
pword= entry2.get()
tup=[uname,pword]
option1 = Button(root, text = 'Login', command = next)
option1.grid()
if uname!='':
def next():
con = mdb.connect('localhost', 'root', 'root', 'kuis');
with con:
cur = con.cursor()
insert_sql = 'INSERT INTO admin_details(username, password) VALUES("0","1")'.format(*tup)
cur.execute(insert_sql)
root.mainloop()
【问题讨论】:
我的回答对您有帮助吗?如果是这样,如果您需要其他帮助,请接受或发表评论。 【参考方案1】:显而易见的问题是,您在初始化后直接从两个条目中获取文本。当条目中的文本更改时,您用于此的两个变量不会更改。
下面是一些基本代码,如何从两个输入字段中检索值并将它们传递给函数:
import tkinter as Tk
import tkinter.messagebox
def show_pass_user(password, user):
# show what we got
tkinter.messagebox.showinfo("Data received", "Hey just got your username \"" + user + "\"" +
" and password \"" + password + "\"")
# run your sql here
def main():
root = Tk.Tk()
entry_user = Tk.Entry(root)
entry_user.insert(0, "Username")
entry_pass = Tk.Entry(root)
entry_pass.insert(0, "Password")
# use a lambda to get Username and Password when button is pressed
pressme = Tk.Button(root, text="Press Me", command=lambda:
show_pass_user(entry_pass.get(), entry_user.get()))
entry_user.grid()
entry_pass.grid()
pressme.grid()
root.mainloop()
if __name__ == "__main__":
main()
此代码仅在 Python3! 下运行
【讨论】:
你的回答很好,但我期待 pyrhon 2.7 的代码,因为我不知道 python3以上是关于登录按钮按下后,如何获取Tkinter entry的值并传递给SQL查询?的主要内容,如果未能解决你的问题,请参考以下文章
Python tkinter Entry 小部件状态通过单选按钮切换
python tkinter 怎么改变控件的形状,比如将按钮改成圆形的