在tkinter中实现以下功能:创建数据库,对输入的数据进行搜索,如果数据库中没有该数据则添加该数据,反之则删除该数据
时间: 2023-12-03 07:42:10 浏览: 22
首先,我们需要导入必要的模块。在这个例子中,我们将使用sqlite3来创建和管理数据库,并且使用tkinter来创建GUI。
```python
import sqlite3
import tkinter as tk
```
然后,我们需要定义一个函数来创建数据库。我们将使用sqlite3来执行SQL语句。
```python
def create_database():
conn = sqlite3.connect('mydatabase.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS mytable
(id INTEGER PRIMARY KEY, name TEXT)''')
conn.commit()
conn.close()
```
接下来,我们将创建一个函数来搜索数据库中的数据。如果找到了匹配的项,则在GUI中显示消息。否则,将调用添加函数来添加该数据。
```python
def search_database():
name = name_entry.get()
conn = sqlite3.connect('mydatabase.db')
c = conn.cursor()
c.execute("SELECT * FROM mytable WHERE name=?", (name,))
row = c.fetchone()
if row:
message_label.config(text="Found: {}".format(row))
else:
add_database(name)
message_label.config(text="Added: {}".format(name))
conn.commit()
conn.close()
```
现在,我们需要创建一个函数来添加数据到数据库中。
```python
def add_database(name):
conn = sqlite3.connect('mydatabase.db')
c = conn.cursor()
c.execute("INSERT INTO mytable (name) VALUES (?)", (name,))
conn.commit()
conn.close()
```
最后,我们将创建一个函数来删除数据库中的数据。
```python
def delete_database():
name = name_entry.get()
conn = sqlite3.connect('mydatabase.db')
c = conn.cursor()
c.execute("DELETE FROM mytable WHERE name=?", (name,))
conn.commit()
conn.close()
message_label.config(text="Deleted: {}".format(name))
```
最后,我们将使用tkinter来创建GUI并将上述函数与按钮和标签关联起来。
```python
root = tk.Tk()
name_label = tk.Label(root, text="Name:")
name_label.pack()
name_entry = tk.Entry(root)
name_entry.pack()
search_button = tk.Button(root, text="Search", command=search_database)
search_button.pack()
delete_button = tk.Button(root, text="Delete", command=delete_database)
delete_button.pack()
message_label = tk.Label(root, text="")
message_label.pack()
create_database()
root.mainloop()
```
现在,我们已经完成了这个简单的应用程序。当用户输入一个名称并单击“搜索”按钮时,程序将搜索数据库并在标签中显示结果。如果找不到该项,则程序将调用添加函数来添加该项。单击“删除”按钮将从数据库中删除该项。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)