繁体   English   中英

如何使用tkinter Python创建搜索表单以从SQLITE3数据库进行搜索?

[英]How to create search form using tkinter Python to search from the SQLITE3 Database?

我想使用Tkinter创建一个搜索表单,用户可以在其中输入他们想要从SQLite3数据库中看到的名称。 名为New_Assignment的数据库包含有关人员的所有详细信息。 但是我对如何将Tkinter连接到数据库并使用名称进行搜索感到困惑? 到目前为止,这就是我所得到的。

import sqlite3
conn = sqlite3.connect('new_assignment.db')
c = conn.cursor()
from tkinter import *
top = Tk()
top.title('Search form')
person_name = Entry()
person_name.pack(side = RIGHT, expand = True)
mainloop()

要从Entry小部件中获取文本,请使用get()方法(它在文本框中返回字符串)。

name_box = Entry()
name_box.pack(side=RIGHT, expand=True)

person_name = name_box.get()

但是,您需要添加一个按钮,如@abarnert在评论中所述。 附加此功能:

def get_name():
  global person_name
  person_name =  name_box.get()
  data = c.fetchall()
  print(data)
  for row in data:
      searchlist.append(row)
      var1=str(person_name)
      read_from_db(var1) 

(当然,修改read_from_db()以采用如下所示的变量:

def read_from_db(var):
    curs.execute("SELECT *" + " FROM personal WHERE Name LIKE (?)", ('%'+var+'%',))

按钮代码的示例可能如下所示:

button = Button(top, text="Display text", command=get_name)

全部放在一起:

import sqlite3

conn = sqlite3.connect('new_assignment.db')
c = conn.cursor()

from tkinter import *

top = Tk()
top.title('Search form')

name_box = Entry()
name_box.pack(side = RIGHT, expand = True)

def get_name():
    global person_name
    person_name = name_box.get()
    data = c.fetchall()
    print(data)
    for row in data:
        searchlist.append(row)
        var1=str(person_name)
        read_from_db(var1) 


def read_from_db(var):
    curs.execute("SELECT *" + " FROM personal WHERE Name LIKE (?)", ('%'+var+'%',))


person_name = ""
button = Button(top, text="Display text", command=get_name)
button.pack()


mainloop()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM