用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()
运行截图
© 版权声明
免责声明:
本站提供的资源所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关。您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,得到更好的正版服务。侵删请致信 E-mail:2945314004@qq.com。
THE END
暂无评论内容