登录按钮按下后,如何获取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 怎么改变控件的形状,比如将按钮改成圆形的

如何使用 tkinter 中的按钮设置“Entry”小部件的文本/值/内容

labview 如何设置按钮按下后形状还原?

如何将变量连接到 Entry 小部件?

Kivy - 按下后更改按钮的颜色?