使用 Python 和 Tkinter(Python 的标准 GUI 库)以及 SQLite(Python 内置的轻量级数据库)来一个简单的数据库GUI程序来管理班级信息

import tkinter as tk

from tkinter import messagebox

import sqlite3

# 连接到SQLite数据库(如果不存在则会自动创建)

conn = sqlite3.connect('class_info.db')

# 创建游标对象

c = conn.cursor()

# 创建班级信息表格(如果不存在)

c.execute('''CREATE TABLE IF NOT EXISTS students (

             student_id INTEGER PRIMARY KEY,

             student_name TEXT NOT NULL,

             student_age INTEGER,

             student_gender TEXT

             )''')

# 提交更改

conn.commit()

# 创建主界面

root = tk.Tk()

root.title("班级信息管理系统")

# 函数:插入学生信息到数据库

def insert_student():

    name = name_entry.get()

    age = age_entry.get()

    gender = gender_entry.get()

   

    if name == '' or age == '' or gender == '':

        messagebox.showerror("错误", "请填写完整的学生信息")

        return

   

    try:

        age = int(age)

    except ValueError:

        messagebox.showerror("错误", "年龄必须是整数")

        return

   

    c.execute('''INSERT INTO students (student_name, student_age, student_gender)

                 VALUES (?, ?, ?)''', (name, age, gender))

    conn.commit()

    messagebox.showinfo("成功", "学生信息已添加")

    name_entry.delete(0, tk.END)

    age_entry.delete(0, tk.END)

    gender_entry.delete(0, tk.END)

# 函数:显示所有学生信息

def show_students():

    c.execute('''SELECT * FROM students''')

    rows = c.fetchall()

    if not rows:

        messagebox.showinfo("提示", "数据库中没有学生信息")

    else:

        for row in rows:

            print(row)

# 标签和输入框

tk.Label(root, text="姓名:").grid(row=0, column=0)

name_entry = tk.Entry(root)

name_entry.grid(row=0, column=1)

tk.Label(root, text="年龄:").grid(row=1, column=0)

age_entry = tk.Entry(root)

age_entry.grid(row=1, column=1)

tk.Label(root, text="性别:").grid(row=2, column=0)

gender_entry = tk.Entry(root)

gender_entry.grid(row=2, column=1)

# 按钮:插入学生信息

insert_button = tk.Button(root, text="添加学生", command=insert_student)

insert_button.grid(row=3, column=0, columnspan=2, pady=10)

# 按钮:显示所有学生信息(测试用)

show_button = tk.Button(root, text="显示所有学生", command=show_students)

show_button.grid(row=4, column=0, columnspan=2, pady=10)

# 运行主循环

root.mainloop()

# 关闭数据库连接

conn.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值