sqlite数据库结合tkinter展示学生管理系统

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)
        
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值