用Python的tkinter写一个学生信息管理系统

用Python的tkinter写一个学生信息管理系统

用Python的tkinter实现学生管理系统

利用了Python的pymysql和tkinter模块

建立tkinter框架然后运用sql语句进行添加删除查询等操作

模块安装教程

这个Python运用到了pymysql和tkinter模块

我们可以直接在终端运行以下代码进行安装pymysql和tkinter模块

pip install pymysql tkinter

一般情况下是可以直接安装的

实在不行的百度一下吧

MySQL数据

Python里面连接了MySQL数据库,需要本地安装MySQL环境或者连接服务器的MySQL数据库

里面需要改的地方我已经表名了

我们需要新建一个MySQL数据表,SQL语句整理如下:

CREATE TABLE `student` (
  `name` varchar(50) NOT NULL,
  `id` varchar(20) NOT NULL,
  `class` varchar(50) NOT NULL,
  `phone` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

运行SQL语句即可得到相应的数据表

建好数据表之后直接用Python连接即可

实在不会运行SQL语句的我们可以看看这个自己手动添加数据表

图片

Python代码

import pymysql
import tkinter as tk
from tkinter import ttk, messagebox

db = pymysql.connect(host="这里是MySQL的链接地址", user="MySQL账号", password="MySQL密码", database="数据库名")

root = tk.Tk()
root.geometry("600x400")
root.title("学生信息管理系统")

# 创建样式
style = ttk.Style()
style.theme_use("clam")
style.configure("TLabel", font=("Helvetica", 12))
style.configure("TEntry", font=("Helvetica", 12))
style.configure("TButton", font=("Helvetica", 12))

# 创建标签和文本框
name_label = ttk.Label(root, text="姓名:")
name_label.grid(row=0, column=0, padx=10, pady=10)
name_entry = ttk.Entry(root)
name_entry.grid(row=0, column=1, padx=10, pady=10)

id_label = ttk.Label(root, text="学号:")
id_label.grid(row=1, column=0, padx=10, pady=10)
id_entry = ttk.Entry(root)
id_entry.grid(row=1, column=1, padx=10, pady=10)

class_label = ttk.Label(root, text="班级:")
class_label.grid(row=2, column=0, padx=10, pady=10)
class_entry = ttk.Entry(root)
class_entry.grid(row=2, column=1, padx=10, pady=10)

phone_label = ttk.Label(root, text="电话号码:")
phone_label.grid(row=3, column=0, padx=10, pady=10)
phone_entry = ttk.Entry(root)
phone_entry.grid(row=3, column=1, padx=10, pady=10)

#添加函数
def insert_student():
    name = name_entry.get()
    student_id = id_entry.get()
    student_class = class_entry.get()
    phone = phone_entry.get()
    cursor = db.cursor()
    sql = "INSERT INTO student (name, id, class, phone) VALUES (%s, %s, %s, %s)"
    try:
        cursor.execute(sql, (name, student_id, student_class, phone))
        db.commit()
        messagebox.showinfo("成功", "添加成功!")
    except:
        db.rollback()
        messagebox.showerror("失败", "添加失败!")
#更新函数
def update_student():
    name = name_entry.get()
    student_id = id_entry.get()
    student_class = class_entry.get()
    phone = phone_entry.get()
    cursor = db.cursor()
    sql = "UPDATE student SET name=%s, class=%s, phone=%s WHERE id=%s"
    try:
        cursor.execute(sql, (name, student_class, phone, student_id))
        db.commit()
        messagebox.showinfo("成功", "更新成功!")
    except:
        db.rollback()
        messagebox.showerror("失败", "更新失败!")
#删除函数
def delete_student():
    student_id = id_entry.get()
    cursor = db.cursor()
    sql = "DELETE FROM student WHERE id=%s"
    try:
        cursor.execute(sql, student_id)
        db.commit()
        messagebox.showinfo("成功", "删除成功!")
    except:
        db.rollback()
        messagebox.showerror("失败", "删除失败!")
#查询函数
def query_student():
    cursor = db.cursor()
    sql = "SELECT * FROM student"
    try:
        cursor.execute(sql)
        results = cursor.fetchall()
        listbox.delete(0, tk.END)
        for row in results:
            listbox.insert(tk.END, "姓名:" + row[0] + " 学号:" + row[1] + " 班级:" + row[2] + " 电话号码:" + row[3])
    except:
        messagebox.showerror("失败", "查询失败!")


# 创建按钮
insert_button = ttk.Button(root, text="添加", command=insert_student)
insert_button.grid(row=4, column=0, padx=10, pady=10)

update_button = ttk.Button(root, text="更新", command=update_student)
update_button.grid(row=4, column=1, padx=10, pady=10)

delete_button = ttk.Button(root, text="删除", command=delete_student)
delete_button.grid(row=4, column=2, padx=10, pady=10)

query_button = ttk.Button(root, text="查询", command=query_student)
query_button.grid(row=4, column=3, padx=10, pady=10)

# 创建列表框
listbox = tk.Listbox(root, width=70)
listbox.grid(row=5, column=0, columnspan=4, padx=10, pady=10)

# 设置列表框样式
style.configure("TListbox", font=("Helvetica", 12), background="white", foreground="black", selectbackground="blue", selectforeground="white", highlightthickness=0)

# 添加滚动条
scrollbar = ttk.Scrollbar(root, orient=tk.VERTICAL, command=listbox.yview)
scrollbar.grid(row=5, column=4, sticky="ns", pady=10)
listbox.config(yscrollcommand=scrollbar.set)

root.mainloop()

db.close()

运行截图

图片

图片

© 版权声明
THE END
喜欢就支持一下吧
点赞9赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容