Python实战项目之MySQL tkinter pyinstaller实现学生管理系统

Python实战项目之MySQL tkinter pyinstaller实现学生管理系统是一个完整的项目,主要包含以下步骤:

  1. 数据库设计与创建
    在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
);
  1. 使用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()
  1. 使用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()
  1. 实现数据库操作功能
    在程序中实现对学生表的操作,例如查询所有学生、根据学生编号查询学生、添加学生、修改学生和删除学生等功能,示例代码如下:
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()
  1. 打包程序
    使用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技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • Python基于回溯法子集树模板实现8皇后问题

    下面是详细讲解“Python基于回溯法子集树模板实现8皇后问题”的完整攻略。 1. 什么是回溯法 回溯法是一种通过断尝试和回溯来寻找解的算法。它通常用于解决组合问题、排列问题、子集问题等。回溯的基本思想是:从问题的某一种状态开始搜索,当搜索到某一状态时,如果这种状态不是问题的解,则回溯到上一个状态续搜索。 2. 子集树模板 子集树是回溯法的一种常用模板,它通…

    python 2023年5月14日
    00
  • 如何在Python中插入数据到Oracle数据库?

    在Python中,我们可以使用cx_Oracle模块连接Oracle数据库,并使用SQL语句执行插入操作。以下是如何在Python中插入数据到Oracle数据库的完整使用攻略,包括连接数据库、执行插入语句、提交事务等步骤。同时,提供两个示例以便更好理解如何在Python中插入数据到Oracle数据库。 步骤1:安装cx_Oracle模块 在Python中,我…

    python 2023年5月12日
    00
  • 超详细Python解释器新手安装教程

    超详细Python解释器新手安装教程 本文将介绍如何安装Python解释器(Interpreter),并简单介绍Python的基础知识。 下载Python解释器 首先需要从官网下载Python解释器。Python官网提供了Windows、Mac、Linux等多个平台的Python版本,选择与自己操作系统对应的版本进行下载。 可以通过以下链接进入Python官…

    python 2023年5月30日
    00
  • Python迭代器定义与简单用法分析

    Python迭代器定义与简单用法分析 什么是迭代器? Python迭代器是一个可以实现依次返回对象元素的对象,它让我们可以通过一个循环来遍历一个容器(如列表或元组)中的元素,而不需要使用一个计数器来访问容器的每个元素。 在Python中,迭代器一般通过定义一个类来实现。一个迭代器对象有两个基本的方法:__iter__ 和 __next__。 __iter__…

    python 2023年6月6日
    00
  • Python3实现的腾讯微博自动发帖小工具

    下面是关于“Python3实现的腾讯微博自动发帖小工具”的详细攻略。 一、前置知识准备 在使用此工具之前,需要准备以下前置知识: Python3基础语法和函数调用; 使用requests库进行网络请求; 使用beautifulsoup4库进行网页解析。 若您不熟悉以上知识,可以参考相关的Python入门教程和网络爬虫教程,进行相关学习。 二、安装依赖库 在使…

    python 2023年5月19日
    00
  • 解决链式 Python 拼图:

    【问题标题】:Solving a Chain Link Python Puzzle:解决链式 Python 拼图: 【发布时间】:2023-04-07 00:17:01 【问题描述】: 我不确定从以下 python 谜题开始。 “你持有一个链的链接。实现一个方法longerSide来查找链的哪一侧有更多的链接,相对于你持有的链接。如果左侧有更多的链接返回Si…

    Python开发 2023年4月7日
    00
  • 将python依赖包打包成window下可执行文件bat方式

    将Python依赖包打包成Windows下可执行文件(BAT方式)的攻略如下: 安装打包工具 首先需要安装一个打包工具,这里我们选择使用PyInstaller,可以通过pip来进行安装: pip install pyinstaller 打包 有了打包工具之后,我们就可以开始打包Python依赖包了。打包的命令很简单,如下所示: pyinstaller –o…

    python 2023年6月3日
    00
  • 解决python调用matlab时的一些常见问题

    解决Python调用Matlab时的一些常见问题 在Python中,我们可以使用matlab.engine模块来调用Matlab。但是,在使用这个模块时,可能会遇到一些常见的问题。本文将详细讲解如何解决Python调用Matlab时的一些常见问题,包括Matlab引擎的安装、Matlab引擎的启动、Matlab引擎的关闭等。在过程中,提供两个示例说明,帮助读…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部