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

 更新时间:2021年10月21日 10:25:52   作者:铁甲小宝同学  
读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用MySQL、tkinter、 pyinstaller实现一个学生管理系统,大家可以通过案例查缺补漏,提升水平

终极版终于有时间给大家分享了!!!。

我们先看一下效果图。

1:登录界面:

2:查询数据库所有的内容!

3:链接数据库:

4:最终的打包!

话不多说直接上代码!!!!

from tkinter import *
import pymysql
from tkinter.messagebox import *
from tkinter import ttk
 
def get_connect():
    conn = pymysql.connect(host='localhost', user="root", passwd='GAO147258369',database='stu')
    return conn
 
window = Tk()
window.geometry('500x300')
window.title('登录账号!')
 
def create():
    root =Toplevel()
    root.geometry('700x800')
    root.title('学生管理系统')
 
    Label(root, text="学号:").place(relx=0, rely=0.05, relwidth=0.1)
    Label(root, text="姓名:").place(relx=0.5, rely=0.05, relwidth=0.1)
    Label(root, text="性别:").place(relx=0, rely=0.1, relwidth=0.1)
    Label(root, text="电话:").place(relx=0.5, rely=0.1, relwidth=0.1)
 
    sid1 = StringVar()
    name1 = StringVar()
    sex1 = StringVar()
    phone = StringVar()
    Entry(root, textvariable=sid1).place(relx=0.1, rely=0.05, relwidth=0.37, height=25)
    Entry(root, textvariable=name1).place(relx=0.6, rely=0.05, relwidth=0.37, height=25)
 
    Entry(root, textvariable=sex1).place(relx=0.1, rely=0.1, relwidth=0.37, height=25)
    Entry(root, textvariable=phone).place(relx=0.6, rely=0.1, relwidth=0.37, height=25)
 
    def add():
        list1 = []
        list1.append(sid1.get())
        list1.append(name1.get())
        list1.append(sex1.get())
        list1.append(phone.get())
        # print(list1)
        connection = get_connect()
        cur = connection.cursor(cursor=pymysql.cursors.DictCursor)
        sql = 'insert into student(学号,姓名,性别,电话) values("%s","%s","%s", "%s")'
        sid = int(list1[0])
        name = list1[1]
        sex = list1[2]
        iphone = int(list1[3])
        try:
            cur.execute(sql % (sid, name, sex, iphone))
            connection.commit()
        except Exception as e:
            connection.rollback()
            raise e
        finally:
            connection.close()
        showinfo('提示', '添加成功!')
 
    def search():
        showinfo('提示', '请输入学号!')
        into = int(sid1.get())
        conn = pymysql.connect(host='localhost', user="root", passwd="", database='stu')
        cur = conn.cursor()
        sql = 'select * from student ;'
        cur.execute(sql)
        all = cur.fetchall()
        for i in range(len(all)):
            for j in all:
                if into == j[0]:
                    treeview.insert('', i, value=(j[0], j[1], j[2], j[3]))
                    break
            break
 
    def search_all():
        conn = pymysql.connect(host='localhost', user="root", passwd="", database='stu')
        cur = conn.cursor()
        sql = 'select * from student ;'
        cur.execute(sql)
        f = cur.fetchall()
        for i in range(len(f)):
            # for j in range(len(i)):
            treeview.insert('', i, value=(f[i][0], f[i][1], f[i][2], f[i][3]))
 
    Button(root, text="添加信息", command=add).place(relx=0.1, rely=0.2, width=100)
    Button(root, text="查询个人信息", command=search).place(relx=0.3, rely=0.2, width=100)
    Button(root, text="查询所有信息", command=search_all).place(relx=0.6, rely=0.2, width=100)
    Button(root, text="退出程序", command=root.quit).place(relx=0.8, rely=0.2, width=100)
 
    columns = ('学号', '姓名', '性别', '电话')
    treeview = ttk.Treeview(root, show='headings', columns=columns)
    treeview.column('学号', width=150, anchor='center')
    treeview.column('姓名', width=150, anchor='center')
    treeview.column('性别', width=150, anchor='center')
    treeview.column('电话', width=150, anchor='center')
 
    treeview.heading('学号', text='学号')
    treeview.heading('姓名', text='姓名')
    treeview.heading('性别', text='性别')
    treeview.heading('电话', text='电话')
 
    treeview.place(rely=0.3, relwidth=0.97)
Label(window,text = '账号:').place(relx =0, rely = 0.05,relwidth = 0.3)
Label(window,text = '密码:').place(relx = 0, rely = 0.15,relwidth =0.3)
 
#鼠标定位
zh = StringVar()
mm = StringVar()
#输入框
Entry(window,textvariable =zh, show = None).place(relx =0.3,rely = 0.05,relwidth = 0.3)
Entry(window,textvariable =mm,show ='*').place(relx = 0.3,rely = 0.15 ,relwidth = 0.3)
 
#欢迎大家找小宝交流哦QQ:2922035952
#登陆函数
def dl():
    if zh.get() == '20' and mm.get() == '' :
        # showinfo('提示!','登录成功!')
        # window.quit()
        return create()
    else:
        showerror('错误!','账号或密码错误!')
 
Button(window,text = '登录', command =dl).place(relx = 0.2 ,rely = 0.3, relwidth = 0.5)
 
window.mainloop()

还有最后一步——代码打包!!!

我们可以用库——pyinstaller

下载方法:打开cmd 输入 pip install pyinstaller

然后在Terminal里输入 pyinstaller -D -w xxxx.py

然后就成功啦!!!!

最后总结一下:

这个gui界面其实还可以写成学生登录和老师登录,再来一个注册界面,都是用tk去实现,然后老师和学生登陆后的功能不同,这个是一个想法,我没有时间去写了,有的小伙伴有时间可以去思考思考哦!!也欢迎和我讨论,随时欢迎!!!

最后点点赞吧,我快你没动力分享了!!!

到此这篇关于Python实战项目之MySQL tkinter pyinstaller实现学生管理系统的文章就介绍到这了,更多相关Python 学生管理系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python判断某个用户对某个文件的权限

    Python判断某个用户对某个文件的权限

    这篇文章主要为大家详细介绍了Python如何判断某个用户对某个文件的权限,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • python 实现弹球游戏的示例代码

    python 实现弹球游戏的示例代码

    这篇文章主要介绍了python 实现弹球小游戏,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-11-11
  • python中try的使用方法详解

    python中try的使用方法详解

    这篇文章主要给大家介绍了关于python中try使用的相关资料,try语句用于包含一段可能引发异常的代码块,并允许我们定义如何处理这些异常,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • Python数据结构树与算法分析

    Python数据结构树与算法分析

    这篇文章主要介绍了Python数据结构树与算法分析,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-07-07
  • 利用Python写一个爬妹子的爬虫

    利用Python写一个爬妹子的爬虫

    这篇文章主要给大家介绍了关于利用Python写一个爬妹子爬虫的相关资料,文中通过实例代码将实现的方法一步步介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06
  • Python实现的ftp服务器功能详解【附源码下载】

    Python实现的ftp服务器功能详解【附源码下载】

    这篇文章主要介绍了Python实现的ftp服务器功能,结合实例形式分析了Python构建ftp服务器功能的相关设置、实现技巧与操作注意事项,并附带源码供读者下载参考,需要的朋友可以参考下
    2019-06-06
  • selenium+python 对输入框的输入处理方法

    selenium+python 对输入框的输入处理方法

    今天小编就为大家分享一篇selenium+python 对输入框的输入处理方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Numpy(Pandas)删除全为零的列的方法

    Numpy(Pandas)删除全为零的列的方法

    这篇文章主要介绍了Numpy(Pandas)删除全为零的列的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 使用Python处理数据集的技巧分享

    使用Python处理数据集的技巧分享

    这篇文章会从加载数据开始,一步步教大家如何格式化数据、保存数据,最后还会教大家如何加载处理后的数据,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-12-12
  • python实现密码验证合格程序的思路详解

    python实现密码验证合格程序的思路详解

    这篇文章主要介绍了python实现密码验证合格程序的思路详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06

最新评论