python自带数据库sqlite,不需要安装其他的
导入import sqlite3就可以了,可实现增删改查功能
1、先进行创建tkintrer界面,然后进入sqlite数据库,新建数据库和表格
import tkinter as tk
from tkinter import END
from tkinter import messagebox
from tkinter import ttk
import sqlite3
class App:
def __init__(self,master):
self.var1 = tk.StringVar()
self.var2 = tk.StringVar()
self.var3 = tk.StringVar()
self.var4 = tk.StringVar()
self.var5 = tk.StringVar()
self.var6 = tk.StringVar()
self.var7 = tk.StringVar()
self.var8 = tk.StringVar()
self.columns = ['id','name','student_number','gender','age','chinese','math','english']
self.tree = ttk.Treeview(
master, #
height=17, # 表格显示的行数
columns=self.columns, # 显示的列
show='headings', # 隐藏首列
)
for x in self.columns:
self.tree.heading(x, text = x)
self.tree.column(x, width=149,anchor=tk.CENTER) #居中对齐
self.tree.grid(row=0,columnspan=8) #columnspan=8合并单元格,横跨8列
#连接数据库
conn = sqlite3.connect('test.db') #连接数据库,没有的话会创建
cur = conn.cursor() #创建游标
#创建表
try:
table = '''CREATE TABLE IF NOT EXISTS informations
(ID INT PRIMARY KEY,
name TEXT,
student_number NUMBER,
gender TEXT,
ages INT,
chinese NUMBER,
math NUMBER,
english NUMBER);'''
#ID INT PRIMARY KEY,表明ID是唯一的
cur.execute(table)
conn.commit()
# print('表格创建成功!')
except Exception as e:
messagebox.showerror(title = '错误信息',message = str(e))
finally:
conn.close()
# self.data = []
#显示信息
conn = sqlite3.connect('test.db') #连接数据库,没有的话会创建
cur = conn.cursor() #创建游标
try:
query = "select * from informations"
cur.execute(query)
#查询多条
results = cur.fetchall()
for row in results:
idd = row[0]
name = row[1]
xh = row[2]
gender = row[3]
age = row[4]
chinese = row[5]
math = row[6]
english = row[7]
s = [idd,name,xh,gender,age,chinese,math,english]
# self.data.append(s)
self.tree.insert('', END, values=s)
except Exception as e:
messagebox.showerror(title = '错误信息',message = str(e))
finally:
conn.close()
self.tree.bind("<ButtonRelease-1>",self.click_bf) #绑定点击事件
#增加控件信息
self.label0 = tk.Label(master,text = 'ID',font=('华文行楷',12))
self.label0.grid(row=1,column=0)
self.entry0 = tk.Entry(master)
self.entry0.grid(row=1,column=1)
self.label1 = tk.Label(master,text = '姓名',font=('华文行楷',12))
self.label1.grid(row=2,column=0)
self.entry1 = tk.Entry(master)
self.entry1.grid(row=2,column=1)
self.label2 = tk.Label(master,text = '学号',font=('华文行楷',12))
self.label2.grid(row=3,column=0)
self.entry2 = tk.Entry(master)
self.entry2.grid(row=3,column=1)
self.label3 = tk.Label(master,text = '性别',font=('华文行楷',12))
self.label3.grid(row=4,column=0)
self.entry3 = tk.Entry(master)
self.entry3.grid(row=4,column=1)
self.label4 = tk.Label(master,text = '年龄',font=('华文行楷',12))
self.label4.grid(row=5,column=0)
self.entry4 = tk.Entry(master)