Python实战项目之MySQL tkinter pyinstaller实现学生管理系统
作者:铁甲小宝同学 发布时间:2024-01-15 16:21:25
标签:Python,学生管理系统,实战项目
终极版终于有时间给大家分享了!!!。
我们先看一下效果图。
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去实现,然后老师和学生登陆后的功能不同,这个是一个想法,我没有时间去写了,有的小伙伴有时间可以去思考思考哦!!也欢迎和我讨论,随时欢迎!!!
最后点点赞吧,我快你没动力分享了!!!
来源:https://blog.csdn.net/m0_54355125/article/details/120070511
0
投稿
猜你喜欢
- 本文实例讲述了Django中使用group_by的方法。分享给大家供大家参考。具体分析如下:在Django中怎样使用group_by语句呢?
- 本文实例讲述了Python整型运算之布尔型、标准整型、长整型操作。分享给大家供大家参考,具体如下:#coding=utf8def integ
- Python读取配置文件-ConfigParser二次封装直接上上代码test.conf[database]connect = mysqls
- 最近在作图时需要将输出的图片紧密排布,还要去掉坐标轴,同时设置输出图片大小。要让程序自动将图表保存到文件中,代码为:plt.savefig(
- 废话不多说,直接开干!需要库pip install openaiimport openai# Set your API keyopenai.
- 1.open使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。fi
- 本文是从百度百科中摘录出来的,asp在it中还有Application Service Provider,也就是应用服务供应商的意思。概述A
- 首先,在写数据库时需要遵循以下几个原则: 数据库的命名规范: &nbs
- 先介绍一下jsSmarty Project:简要说明:利用JavaScript?在客户端完成SmartyPhp的工作,加速模板开发。主要是利
- 1 端口映射举个例子来说明一下端口映射的作用。有A、B、C三台计算机,A、B互通,B、C互通,但是A、C不通,这个时候在C上开了一个Web服
- 环境:Anaconda自带的编译器——Spyder最近才开使用conda,发现conda 就是 yyds,爱啦~一、Tensor(张量)im
- 说明: a、以下字符中数据库名forum,数据库服务器名WWW-2443D34E558\SQL2005(或者127.0.0.1) b、查看s
- 国际象棋是当今国际上最流行的智力体育运动项目。青年人下棋可以锻炼思维、增强记忆力和培养坚强的意志;中年人下棋可以享受美学;老年下棋可以很好的
- 目录前言场景模拟总结前言近期多次聊到sql_mode的话题,也是多次遇到相关问题,今天就趁热打铁,再给大家带来一个sql_mode的案例分享
- 系列前言这个系列是我第一个想要更下去的系列。每篇会全面介绍一个 OpenCV 函数,会给出 API 和示例。示例主要是用 Python 去写
- 用 Python 关机你肯定听过或者实践过,那么用 Python 开机呢?这是一个神奇的方法,教你如何用 Python 来开机。GitHub
- select CONVERT(varchar, getdate(), 120 ) 200
- 目录0 背景说明0.1 获取AccessToken0.2 数据库查询0.3 文件下载2. 简单的封装3. 简单测试4. 参考文档0 背景说明
- 按位与或(&、|、^):按照二进制进行逻辑运算例如:数字换成二进制,各自位上的0/1进行逻辑运算,得到的结果转换为数字3 &
- 在蓝色看到的这个程序,不错!by:thornyzhl前天看到有个人写了能在网页中写字的程序,找不到了,我来个能擦写的....蛮有意思的阿.~