Python实战项目之MySQL tkinter pyinstaller实现学生管理系统是一个完整的项目,主要包含以下步骤:
- 数据库设计与创建
在MySQL中创建一个学生表,包含学生编号、学生姓名、性别、年龄和联系方式等字段,可以使用下面的SQL语句实现:
DROP TABLE IF EXISTS student;
CREATE TABLE student (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
gender CHAR(1) NOT NULL,
age INT NOT NULL,
phone VARCHAR(20) NOT NULL
);
- 使用Python连接MySQL数据库
利用pymysql
模块连接MySQL数据库,示例代码如下:
import pymysql
conn = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='test')
cur = conn.cursor()
cur.execute('SELECT * FROM student')
result = cur.fetchall()
print(result)
cur.close()
conn.close()
- 使用tkinter实现GUI界面
使用tkinter
模块实现学生管理系统的GUI界面,包括学生信息的录入、查询、修改和删除等功能,示例代码如下:
import tkinter as tk
class StudentGUI:
def __init__(self, master):
self.master = master
self.master.title('学生管理系统')
self.master.geometry('800x600')
tk.Label(self.master, text='学生编号:').grid(row=0, column=0)
tk.Entry(self.master).grid(row=0, column=1)
tk.Label(self.master, text='学生姓名:').grid(row=1, column=0)
tk.Entry(self.master).grid(row=1, column=1)
tk.Label(self.master, text='学生性别:').grid(row=2, column=0)
tk.Entry(self.master).grid(row=2, column=1)
tk.Label(self.master, text='学生年龄:').grid(row=3, column=0)
tk.Entry(self.master).grid(row=3, column=1)
tk.Label(self.master, text='联系方式:').grid(row=4, column=0)
tk.Entry(self.master).grid(row=4, column=1)
tk.Button(self.master, text='录入').grid(row=5, column=0)
tk.Button(self.master, text='查询').grid(row=5, column=1)
tk.Button(self.master, text='修改').grid(row=6, column=0)
tk.Button(self.master, text='删除').grid(row=6, column=1)
if __name__ == '__main__':
root = tk.Tk()
gui = StudentGUI(root)
root.mainloop()
- 实现数据库操作功能
在程序中实现对学生表的操作,例如查询所有学生、根据学生编号查询学生、添加学生、修改学生和删除学生等功能,示例代码如下:
import pymysql
class StudentDB:
def __init__(self):
self.conn = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='test')
self.cur = self.conn.cursor()
def select_all(self):
sql = 'SELECT * FROM student'
self.cur.execute(sql)
result = self.cur.fetchall()
return result
def select_by_id(self, id):
sql = 'SELECT * FROM student WHERE id = %s'
self.cur.execute(sql, (id,))
result = self.cur.fetchone()
return result
def insert(self, name, gender, age, phone):
sql = 'INSERT INTO student (name, gender, age, phone) VALUES (%s, %s, %s, %s)'
self.cur.execute(sql, (name, gender, age, phone))
self.conn.commit()
def update_by_id(self, id, name, gender, age, phone):
sql = 'UPDATE student SET name = %s, gender = %s, age = %s, phone = %s WHERE id = %s'
self.cur.execute(sql, (name, gender, age, phone, id))
self.conn.commit()
def delete_by_id(self, id):
sql = 'DELETE FROM student WHERE id = %s'
self.cur.execute(sql, (id,))
self.conn.commit()
def __del__(self):
self.cur.close()
self.conn.close()
- 打包程序
使用pyinstaller
模块将程序打包成可执行文件,示例命令如下:
pyinstaller -F student_gui.py
其中,-F
参数表示打包成单个可执行文件。
整个项目的代码实现和使用步骤详见博客文章:Python实战项目之MySQL tkinter pyinstaller实现学生管理系统。
示例说明1:查询所有学生信息
在GUI界面中点击“查询”按钮,调用StudentDB
类的select_all
方法查询所有学生信息,然后将查询结果显示在界面上,示例代码如下:
class StudentGUI:
def __init__(self, master):
# ...
self.db = StudentDB()
tk.Button(self.master, text='查询', command=self.select_all).grid(row=5, column=1)
def select_all(self):
result = self.db.select_all()
# 显示查询结果
示例说明2:修改学生信息
在GUI界面中输入要修改的学生编号、姓名、性别、年龄和联系方式,然后点击“修改”按钮,调用StudentDB
类的update_by_id
方法修改学生信息,示例代码如下:
class StudentGUI:
def __init__(self, master):
# ...
self.db = StudentDB()
tk.Label(self.master, text='要修改的学生编号:').grid(row=7, column=0)
self.id_entry = tk.Entry(self.master)
self.id_entry.grid(row=7, column=1)
tk.Button(self.master, text='修改', command=self.update).grid(row=8, column=1)
def update(self):
id = int(self.id_entry.get())
name = self.name_entry.get()
gender = self.gender_entry.get()
age = int(self.age_entry.get())
phone = self.phone_entry.get()
self.db.update_by_id(id, name, gender, age, phone)
# 显示修改成功提示
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实战项目之MySQL tkinter pyinstaller实现学生管理系统 - Python技术站