python tkinter怎么实现学生信息管理系统
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章给大家分享的是有关python tkinter怎么实现学生信息管理系统的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下初学python,代码写的比较繁杂,
千家信息网最后更新 2025年11月07日python tkinter怎么实现学生信息管理系统
这篇文章给大家分享的是有关python tkinter怎么实现学生信息管理系统的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
具体内容如下
初学python,代码写的比较繁杂,系统功能还有完善的空间
系统使用了mysql数据库,数据库:sch,用户名:root ,密码:123456,创建表的语句写在代码里面了
import tkinterimport tkinter.messageboximport reimport pymysqlfrom tkinter import scrolledtextimport osfrom tkinter import *def window_info(main): w = main.winfo_screenwidth() h = main.winfo_screenheight() x = (w / 2) - 200 y = (h / 2) - 200 return (x, y)def conn(): con = pymysql.connect("localhost", "root", "root", "sch") return con def cur(connection): cur = connection.cursor() return curdef exitsys(): root.destroy()def teacherlogin(): #=============================================================================== def managerindex(): def addstudent(): def addone(): connection = conn() cursor = cur(connection) try: cursor.execute('insert into student values(%s,%s,%s,%s,%s)', (addnameentry.get(), addageentry.get(), addnoentry.get(), addclassentry.get(),'未注册')) connection.commit() except: if addsuccessentry.get() != '': addsuccessentry.delete('0', 'end') addsuccessentry.insert('0', '添加失败!') else: addsuccessentry.insert('0', '添加失败!') connection.rollback() connection.close() cursor.close if addsuccessentry.get() != '': addsuccessentry.delete('0', 'end') addsuccessentry.insert('0', '添加成功!') else: addsuccessentry.insert('0', '添加成功!') def addcancel(): addnameentry.delete('0', 'end') addageentry.delete('0', 'end') addnoentry.delete('0', 'end') addclassentry.delete('0', 'end') addsuccessentry.delete('0', 'end') def exit(): add.destroy() add = Toplevel() add.title('添加学生信息') x, y = window_info(add) add.geometry("415x295+%d+%d" % (x, y)) add['bg'] = 'dodgerblue' labelname = tkinter.Label(add, text='添加学生', width=80, bg='dodgerblue') labelname.place(x=140, y=50, width=150, height=20) labelname = tkinter.Label(add, text='学生名:', width=80) labelname.place(x=140, y=80, width=60, height=20) addnameentry = tkinter.Entry(add, width=200) addnameentry.place(x=195, y=80, width=80, height=20) labelage = tkinter.Label(add, text='年 龄:', width=80) labelage.place(x=140, y=110, width=60, height=20) addageentry = tkinter.Entry(add, width=200) addageentry.place(x=195, y=110, width=80, height=20) labelno = tkinter.Label(add, text='学 号:', width=80) labelno.place(x=140, y=140, width=60, height=20) addnoentry = tkinter.Entry(add, width=200) addnoentry.place(x=195, y=140, width=80, height=20) labelclass = tkinter.Label(add, text='班 级:', width=80) labelclass.place(x=140, y=170, width=60, height=20) addclassentry = tkinter.Entry(add, width=200) addclassentry.place(x=195, y=170, width=80, height=20) addsuccessentry = tkinter.Entry(add, width=200, state='normal') addsuccessentry.place(x=140, y=200, width=135, height=20) buttonadd = tkinter.Button(add, text="添加", command=addone) buttonadd.place(x=140, y=230, width=50, height=20) buttoncancel = tkinter.Button(add, text="重置", command=addcancel) buttoncancel.place(x=220, y=230, width=50, height=20) add.mainloop() return add # =================================================================================== def findonestudent(): def search(): if textsearch.get('1.0', 'end') != '': textsearch.delete('1.0', 'end') else: connection = conn() cursor = cur(connection) try: cursor.execute('select * from student where sno=%s', (entrysearchone.get())) data = list(cursor.fetchone()) textsearch.insert('insert', "学生姓名:" + data[0] + "\n" + "年龄:" + data[1] + "\n" + "学号" + data[2] + "\n" + "班级:" + data[3] + "\n\n") connection.commit() except: connection.rollback() connection.close() cursor.close connection = conn() cursor = cur(connection) try: cursor.execute('select * from student where sno=%s', (entrysearchone.get())) data = list(cursor.fetchone()) textsearch.insert('insert', "学生姓名:" + data[0] + "\n" + "年龄:" + data[1] + "\n" + "学号" + data[2] + "\n" + "班级:" + data[3] + "\n\n") connection.commit() except: connection.rollback() connection.close() cursor.close def searchonecancel(): textsearch.delete('1.0', 'end') def searchnocancel(): entrysearchone.delete('0', 'end') def exit(): findone.destroy() findone = Toplevel() findone.title('查询学生信息') x, y = window_info(findone) findone.geometry("415x295+%d+%d" % (x, y)) findone['bg'] = 'dodgerblue' labelname = tkinter.Label(findone, text='请输入要查询学生的学号:', width=80, bg='dodgerblue') labelname.place(x=140, y=50, width=140, height=20) entrysearchone = tkinter.Entry(findone, width=200) entrysearchone.place(x=140, y=80, width=150, height=20) buttonsearch = tkinter.Button(findone, text="查找", command=search) buttonsearch.place(x=140, y=110, width=50, height=20) buttonsearch = tkinter.Button(findone, text="重置", command=searchnocancel) buttonsearch.place(x=240, y=110, width=50, height=20) textsearch = tkinter.scrolledtext.ScrolledText(findone, width=18, height=6) textsearch.place(x=140, y=140) buttoncancel = tkinter.Button(findone, text="清空", command=searchonecancel) buttoncancel.place(x=190, y=230, width=50, height=20) findone.mainloop() # ================================================================================== def deletestudent(): def deleteone(): if deleteoneentry.get() == '': tkinter.messagebox.showerror('error', message="请输入学号!") else: if textdelete.get('1.0', 'end') != '': textdelete.delete('1.0', 'end') else: connection = conn() cursor = cur(connection) try: cursor.execute('delete from student where sno=%s', (deleteoneentry.get())) connection.commit() cursor.execute('select * from student') data = list(cursor.fetchall()) textdelete.insert('insert', "姓名:\t\t年龄:\t\t学号:\t\t班级:") textdelete.insert('insert', "\n") for i in data: print(i) textdelete.insert('insert', '\t\t'.join(i)) textdelete.insert('insert', "\n") except: connection.rollback() connection.close() cursor.close connection = conn() cursor = cur(connection) try: cursor.execute('delete from student where sno=%s', (deleteoneentry.get())) connection.commit() cursor.execute('select * from student') data = list(cursor.fetchall()) textdelete.insert('insert', "姓名:\t\t年龄:\t\t学号:\t\t班级:") textdelete.insert('insert', "\n") for i in data: print(i) textdelete.insert('insert', '\t\t'.join(i)) textdelete.insert('insert', "\n") except: connection.rollback() connection.close() cursor.close def exit(): deleteone.destroy() def deleteonecancel(): deleteoneentry.delete('0', 'end') delete = Toplevel() delete.title('删除学生信息') x, y = window_info(delete) delete.geometry("415x295+%d+%d" % (x, y)) delete['bg'] = 'dodgerblue' labelname = tkinter.Label(delete, text='请输入要删除学生的学号:', bg='dodgerblue') labelname.place(x=5, y=20, width=140, height=20) deleteoneentry = tkinter.Entry(delete, width=200) deleteoneentry.place(x=5, y=50, width=150, height=20) buttondelete = tkinter.Button(delete, text="删除", command=deleteone) buttondelete.place(x=5, y=80, width=50, height=20) buttondelete = tkinter.Button(delete, text="重置", command=deleteonecancel) buttondelete.place(x=105, y=80, width=50, height=20) textdelete = tkinter.scrolledtext.ScrolledText(delete, width=54, height=9) textdelete.place(x=5, y=110) delete.mainloop() # ======================================================================================= def findallstudent(): def show(): if textshow.get('1.0', 'end') != '': textshow.delete('1.0', 'end') else: connection = conn() cursor = cur(connection) try: cursor.execute('select * from student') data = list(cursor.fetchall()) textshow.insert('insert', "姓名:\t\t年龄:\t\t学号:\t\t班级:\t\t登录密码:") textshow.insert('insert', "\n") for i in data: print(i) textshow.insert('insert', '\t\t'.join(i)) textshow.insert('insert', "\n") except: connection.rollback() connection.close() cursor.close connection = conn() cursor = cur(connection) try: cursor.execute('select * from student') data = list(cursor.fetchall()) textshow.insert('insert', "姓名:\t\t年龄:\t\t学号:\t\t班级:\t\t登录密码:") textshow.insert('insert', "\n") for i in data: print(i) textshow.insert('insert', '\t\t'.join(i)) textshow.insert('insert', "\n") except: connection.rollback() connection.close() cursor.close def searchallcancel(): textshow.delete('1.0', 'end') def exit(): findall.destroy() findall = Toplevel() findall.title('查询所有学生信息') x, y = window_info(findall) findall.geometry("520x295+%d+%d" % (x, y)) findall['bg'] = 'dodgerblue' labelname = tkinter.Label(findall, text='查询所有学生信息?', bg='dodgerblue') labelname.place(x=5, y=20, width=100, height=20) buttonshow = tkinter.Button(findall, text="确定", command=show) buttonshow.place(x=5, y=50, width=50, height=20) textshow = tkinter.scrolledtext.ScrolledText(findall, width=75, height=9) textshow.place(x=5, y=80) buttoncancel = tkinter.Button(findall, text="清空", command=searchallcancel) buttoncancel.place(x=5, y=210, width=50, height=20) findall.mainloop() # ======================================================================================= def modifystudent(): def modifyfindone(): connection = conn() cursor = cur(connection) try: cursor.execute('select * from student where sno=%s', (modifyoneentry.get())) connection.commit() except: connection.rollback() connection.close() cursor.close data = list(cursor.fetchall()) if data == []: tkinter.messagebox.showerror(message="没有查询到该学生的信息!") else: modifynameentry.insert('0', data[0][0]) modifyageentry.insert('0', data[0][1]) modifynoentry.insert('0', data[0][2]) modifyclassentry.insert('0', data[0][3]) def submit(): print(modifynameentry.get()) print(modifyoneentry.get()) connection = conn() cursor = cur(connection) sqlname = "update student set sname = %s where sno = %s" cursor.execute(sqlname, (modifynameentry.get(), modifyoneentry.get())) sqlage = "update student set sage = %s where sno = %s" cursor.execute(sqlage, (modifyageentry.get(), modifyoneentry.get())) sqlno = "update student set sno = %s where sno = %s" cursor.execute(sqlno, (modifynoentry.get(), modifyoneentry.get())) sqlclass = "update student set sclass = %s where sno = %s" cursor.execute(sqlclass, (modifyclassentry.get(), modifyoneentry.get())) connection.commit() if modifysuccessentry.get() != '': modifysuccessentry.delete('0', 'end') modifysuccessentry.insert('0', '修改成功!') else: modifysuccessentry.insert('0', '修改成功!') modify = Toplevel() modify.title('修改学生信息') x, y = window_info(modify) modify.geometry("415x295+%d+%d" % (x, y)) modify['bg'] = 'dodgerblue' labelname = tkinter.Label(modify, text='请输入要修改学生的学号:', bg='dodgerblue') labelname.place(x=5, y=20, width=140, height=20) buttonshow = tkinter.Button(modify, text="确定", command=modifyfindone) buttonshow.place(x=155, y=50, width=50, height=20) modifyoneentry = tkinter.Entry(modify, width=200) modifyoneentry.place(x=5, y=50, width=150, height=20) labelname = tkinter.Label(modify, text='该学生信息如下', bg='dodgerblue') labelname.place(x=5, y=70, width=85, height=20) labelname = tkinter.Label(modify, text='姓名:',bg='dodgerblue') labelname.place(x=5, y=100, width=30, height=20) modifynameentry = tkinter.Entry(modify, width=200) modifynameentry.place(x=5, y=120, width=150, height=20) labelname = tkinter.Label(modify, text='年龄:',bg='dodgerblue') labelname.place(x=200, y=100, width=30, height=20) modifyageentry = tkinter.Entry(modify, width=200) modifyageentry.place(x=200, y=120, width=150, height=20) labelname = tkinter.Label(modify, text='学号:',bg='dodgerblue') labelname.place(x=5, y=150, width=30, height=20) modifynoentry = tkinter.Entry(modify, width=200) modifynoentry.place(x=5, y=170, width=150, height=20) labelname = tkinter.Label(modify, text='班级:',bg='dodgerblue') labelname.place(x=200, y=150, width=30, height=20) modifyclassentry = tkinter.Entry(modify, width=200) modifyclassentry.place(x=200, y=170, width=150, height=20) modifysuccessentry = tkinter.Entry(modify, width=200) modifysuccessentry.place(x=5, y=200, width=150, height=20) buttonshow = tkinter.Button(modify, text="提 交", command=submit) buttonshow.place(x=5, y=230, width=50, height=20) modify.mainloop() # ================================================================================== def findselectcourseinfor(): def show(): print('swj') if textshow.get('1.0', 'end') != '': textshow.delete('1.0', 'end') else: connection = conn() cursor = cur(connection) try: cursor.execute('select sno,sname,sclass,cno,cname from student,course where student.sno=sc.sno and course.cno=sc.cno') data = list(cursor.fetchall()) textshow.insert('insert', "学号:\t\t姓名:\t\t班级:\t\t课程编号:\t\t课程名:") textshow.insert('insert', "\n") for i in data: print(i) textshow.insert('insert', '\t\t'.join(i)) textshow.insert('insert', "\n") except: connection.rollback() connection.close() cursor.close connection = conn() cursor = cur(connection) try: cursor.execute('select sc.sno,sname,sclass,sc.cno,course.cname from student,course,sc where student.sno=sc.sno and course.cno=sc.cno') data = list(cursor.fetchall()) textshow.insert('insert', "学号:\t\t姓名:\t\t班级:\t\t课程编号:\t\t课程名:") textshow.insert('insert', "\n") for i in data: print(i) textshow.insert('insert', '\t\t'.join(i)) textshow.insert('insert', "\n") except: connection.rollback() connection.close() cursor.close def searchallcancel(): textshow.delete('1.0', 'end') findall = Toplevel() findall.title('查询学生选课信息') x, y = window_info(findall) findall.geometry("520x295+%d+%d" % (x, y)) findall['bg'] = 'dodgerblue' labelname = tkinter.Label(findall, text='查询学生选课信息?', bg='dodgerblue') labelname.place(x=5, y=20, width=100, height=20) buttonshow = tkinter.Button(findall, text="确定", command=show) buttonshow.place(x=5, y=50, width=50, height=20) textshow = tkinter.scrolledtext.ScrolledText(findall, width=105, height=9) textshow.place(x=5, y=80) buttoncancel = tkinter.Button(findall, text="清空", command=searchallcancel) buttoncancel.place(x=5, y=210, width=50, height=20) findall.mainloop() #=================================================================================== def addcourse(): def addonecourse(): print(addcnoentry.get()) connection = conn() cursor = cur(connection) try: cursor.execute('insert into course values(%s,%s,%s)', (addcnoentry.get(), addcnameentry.get(), addtnoentry.get())) connection.commit() except: if addsuccessentry.get() != '': addsuccessentry.delete('0', 'end') addsuccessentry.insert('0', '添加失败!') else: addsuccessentry.insert('0', '添加失败!') connection.rollback() connection.close() cursor.close if addsuccessentry.get() != '': addsuccessentry.delete('0', 'end') addsuccessentry.insert('0', '添加成功!') else: addsuccessentry.insert('0', '添加成功!') def addcancel(): addcnoentry.delete('0', 'end') addcnameentry.delete('0', 'end') addtnoentry.delete('0', 'end') addsuccessentry.delete('0', 'end') addcourse = Toplevel() addcourse.title('添加学生信息') x, y = window_info(addcourse) addcourse.geometry("415x295+%d+%d" % (x, y)) addcourse['bg'] = 'dodgerblue' labelname = tkinter.Label(addcourse, text='添加学生', width=80, bg='dodgerblue') labelname.place(x=140, y=50, width=150, height=20) labelname = tkinter.Label(addcourse, text='课程号:', width=80) labelname.place(x=140, y=80, width=60, height=20) addcnoentry = tkinter.Entry(addcourse, width=200) addcnoentry.place(x=195, y=80, width=80, height=20) labelage = tkinter.Label(addcourse, text='课程名:', width=80) labelage.place(x=140, y=110, width=60, height=20) addcnameentry = tkinter.Entry(addcourse, width=200) addcnameentry.place(x=195, y=110, width=80, height=20) labelno = tkinter.Label(addcourse, text='教师编号:', width=80) labelno.place(x=140, y=140, width=60, height=20) addtnoentry = tkinter.Entry(addcourse, width=200) addtnoentry.place(x=195, y=140, width=80, height=20) addsuccessentry = tkinter.Entry(addcourse, width=200, state='normal') addsuccessentry.place(x=140, y=170, width=135, height=20) buttonadd = tkinter.Button(addcourse, text="添加", command=addonecourse) buttonadd.place(x=140, y=200, width=50, height=20) buttoncancel = tkinter.Button(addcourse, text="重置", command=addcancel) buttoncancel.place(x=220, y=200, width=50, height=20) addcourse.mainloop() def exitsys(): root.destroy() studentindex = Toplevel() studentindex.title('学生信息管理系统') x, y = window_info(studentindex) studentindex.geometry("430x505+%d+%d" % (x, y)) studentindex['bg'] = 'dodgerblue' labelname = tkinter.Label(studentindex, text='欢迎使用学生信息管理系统', bg='dodgerblue', font=("楷体", 20)) labelname.place(x=60, y=30, width=350, height=40) buttonadd = tkinter.Button(studentindex, text="添 加", command=addstudent) buttonadd.place(x=150, y=90, width=100, height=40) buttonadd = tkinter.Button(studentindex, text="查 询", command=findonestudent) buttonadd.place(x=150, y=140, width=100, height=40) buttonadd = tkinter.Button(studentindex, text="删 除", command=deletestudent) buttonadd.place(x=150, y=190, width=100, height=40) buttonadd = tkinter.Button(studentindex, text="查询所有", command=findallstudent) buttonadd.place(x=150, y=240, width=100, height=40) buttonadd = tkinter.Button(studentindex, text="修 改", command=modifystudent) buttonadd.place(x=150, y=290, width=100, height=40) buttonadd = tkinter.Button(studentindex, text="添加课程", command=addcourse) buttonadd.place(x=150, y=340, width=100, height=40) buttonadd = tkinter.Button(studentindex, text="学生选课信息", command=findselectcourseinfor) buttonadd.place(x=150, y=390, width=100, height=40) buttonadd = tkinter.Button(studentindex, text="退出系统", command=exitsys) buttonadd.place(x=150, y=440, width=100, height=40) studentindex.mainloop() # =============================================================================== def login(): name = entryName.get() pwd = entryPwd.get() connection = conn() cursor = cur(connection) cursor.execute('select * from login') data = list(cursor.fetchall()) print(data) if data == []: tkinter.messagebox.showerror(message="账号或密码错误!") return 0 for i in data: print(i[0]) print(i[1]) if i[0] == name and i[1] == pwd: managerindex() def forregister(): def loginregister(): if pwdentry.get() == '' or confirmpwdentry.get == '': tkinter.messagebox.showerror(message="请输入账号密码!") elif pwdentry.get() == confirmpwdentry.get(): connection = conn() cursor = cur(connection) try: cursor.execute('insert into login(user,password)values(%s,%s)', (userentry.get(), pwdentry.get())) connection.commit() if registersuccessentry.get() != '': registersuccessentry.delete('0', 'end') registersuccessentry.insert('0', '注册成功!') else: registersuccessentry.insert('0', '注册成功!') bottonOk = tkinter.Button(studentregister, text="立即登录", command=registerlogin, bg='dodgerblue') bottonOk.place(x=125, y=230, width=70, height=30) #return userentry.get(), pwdentry.get() except: connection.rollback() if registersuccessentry.get() != '': registersuccessentry.delete('0', 'end') registersuccessentry.insert('0', '注册失败!') else: registersuccessentry.insert('0', '注册失败!') else: tkinter.messagebox.showerror(message="两次输入的密码不相同!") def registerlogin(): managerindex() studentregister = Toplevel() x, y = window_info(studentregister) studentregister.title('学生信息管理系统') studentregister.geometry("415x295+%d+%d" % (x, y)) studentregister['bg'] = 'dodgerblue' labelname = tkinter.Label(studentregister, text='注册学生信息管理系统', bg='dodgerblue', font=("楷体", 20)) labelname.place(x=60, y=30, width=300, height=40) labelName = tkinter.Label(studentregister, text="账 号:", bg='dodgerblue', width=80) labelName.place(x=115, y=110, width=80, height=20) userentry = tkinter.Entry(studentregister, width=80) userentry.place(x=210, y=110, width=80, height=20) labelPwd = tkinter.Label(studentregister, text="密 码:", bg='dodgerblue', width=80) labelPwd.place(x=115, y=135, width=80, height=20) pwdentry = tkinter.Entry(studentregister, width=80) pwdentry.place(x=210, y=135, width=80, height=20) labelPwd = tkinter.Label(studentregister, text="确认密码:", bg='dodgerblue', width=80) labelPwd.place(x=115, y=160, width=80, height=20) confirmpwdentry = tkinter.Entry(studentregister, width=80) confirmpwdentry.place(x=210, y=160, width=80, height=20) registersuccessentry = tkinter.Entry(studentregister, width=80) registersuccessentry.place(x=125, y=190, width=165, height=20) bottonCancel = tkinter.Button(studentregister, text='注册', command=loginregister, bg='dodgerblue') bottonCancel.place(x=225, y=230, width=70, height=30) studentregister.mainloop() manager = Toplevel() manager.title(' 管理员端') x, y = window_info(manager) manager.geometry("415x295+%d+%d" % (x, y)) manager['bg'] = 'dodgerblue' varLoginName = tkinter.StringVar() varLoginPwd = tkinter.StringVar() labelname = tkinter.Label(manager, text='欢迎使用学生信息管理系统', bg='dodgerblue', font=("楷体", 18)) labelname.place(x=60, y=30, width=300, height=40) labelName = tkinter.Label(manager, text="账 号:", justify=tkinter.RIGHT, bg='dodgerblue', width=80) labelName.place(x=110, y=110, width=80, height=20) labelPwd = tkinter.Label(manager, text="密 码:", justify=tkinter.RIGHT, bg='dodgerblue', width=80) labelPwd.place(x=110, y=135, width=80, height=20) entryName = tkinter.Entry(manager, width=80, textvariable=varLoginName) entryName.place(x=210, y=110, width=80, height=20) entryPwd = tkinter.Entry(manager, show='*', width=80, textvariable=varLoginPwd) entryPwd.place(x=210, y=135, width=80, height=20) bottonOk = tkinter.Button(manager, text="登录", command=login, bg='dodgerblue') bottonOk.place(x=125, y=170, width=70, height=30) bottonCancel = tkinter.Button(manager, text='注册', command=forregister, bg='dodgerblue') bottonCancel.place(x=225, y=170, width=70, height=30) manager.mainloop() def studentlogin(): def forstudentregister(): def loginregister(): if pwdentry.get() == '' or confirmpwdentry.get == '': tkinter.messagebox.showerror(message="请输入账号密码!") elif pwdentry.get() == confirmpwdentry.get(): connection = conn() cursor = cur(connection) try: sqlpwd = "update student set loginpwd = %s where sno = %s" cursor.execute(sqlpwd, ( pwdentry.get(),userentry.get())) connection.commit() if registersuccessentry.get() != '': registersuccessentry.delete('0', 'end') registersuccessentry.insert('0', '注册成功!') else: registersuccessentry.insert('0', '注册成功!') bottonOk = tkinter.Button(studentregister, text="立即登录", command=registerlogin, bg='dodgerblue') bottonOk.place(x=125, y=230, width=70, height=30) except: connection.rollback() if registersuccessentry.get() != '': registersuccessentry.delete('0', 'end') registersuccessentry.insert('0', '注册失败!') else: registersuccessentry.insert('0', '注册失败!') else: tkinter.messagebox.showerror(message="两次输入的密码不相同!") return userentry.get() def registerlogin(): studentindex(userentry.get()) studentregister = Toplevel() x, y = window_info(studentregister) studentregister.title('学生信息管理系统-注册') studentregister.geometry("415x295+%d+%d" % (x, y)) studentregister['bg'] = 'dodgerblue' labelname = tkinter.Label(studentregister, text='注册学生信息管理系统', bg='dodgerblue', font=("楷体", 20)) labelname.place(x=60, y=30, width=300, height=40) labelName = tkinter.Label(studentregister, text="学 号:", bg='dodgerblue', width=80) labelName.place(x=115, y=110, width=80, height=20) userentry = tkinter.Entry(studentregister, width=80) userentry.place(x=210, y=110, width=80, height=20) labelPwd = tkinter.Label(studentregister, text="密 码:", bg='dodgerblue', width=80) labelPwd.place(x=115, y=135, width=80, height=20) pwdentry = tkinter.Entry(studentregister, width=80) pwdentry.place(x=210, y=135, width=80, height=20) labelPwd = tkinter.Label(studentregister, text="确认密码:", bg='dodgerblue', width=80) labelPwd.place(x=115, y=160, width=80, height=20) confirmpwdentry = tkinter.Entry(studentregister, width=80) confirmpwdentry.place(x=210, y=160, width=80, height=20) registersuccessentry = tkinter.Entry(studentregister, width=80) registersuccessentry.place(x=125, y=190, width=165, height=20) bottonCancel = tkinter.Button(studentregister, text='注册', command=loginregister, bg='dodgerblue') bottonCancel.place(x=225, y=230, width=70, height=30) studentregister.mainloop() def studentindex(name): loginingno=name print('sdfsdffds') def showinfor(): def show(): if textshowinformation.get('1.0', 'end') != '': textshowinformation.delete('1.0', 'end') else: print(loginingno) print('swj') connection = conn() cursor = cur(connection) try: cursor.execute('select * from student where sno=%s', (loginingno)) data = list(cursor.fetchone()) textshowinformation.insert('insert', "学生姓名:" + data[0] + "\n" + "年龄:" + data[1] + "\n" + "学号" + data[2] + "\n" + "班级:" + data[3] + "\n\n") connection.commit() except: connection.rollback() connection.close() cursor.close connection = conn() cursor = cur(connection) try: cursor.execute('select * from student where sno=%s', (loginingno)) data = list(cursor.fetchone()) textshowinformation.insert('insert', "学生姓名:" + data[0] + "\n" + "年龄:" + data[1] + "\n" + "学号" + data[2] + "\n" + "班级:" + data[3] + "\n\n") connection.commit() except: connection.rollback() connection.close() cursor.close def showinforcancel(): textshowinformation.delete('1.0', 'end') showinformation = Toplevel() showinformation.title('查询学籍信息') x, y = window_info(showinformation) showinformation.geometry("415x295+%d+%d" % (x, y)) showinformation['bg'] = 'dodgerblue' labelname = tkinter.Label(showinformation, text='查询学籍信息?', bg='dodgerblue') labelname.place(x=5, y=20, width=100, height=20) buttonshow = tkinter.Button(showinformation, text="确定", command=show) buttonshow.place(x=5, y=50, width=50, height=20) textshowinformation = tkinter.scrolledtext.ScrolledText(showinformation, width=60, height=9) textshowinformation.place(x=5, y=80) buttoncancel = tkinter.Button(showinformation, text="清空", command=showinforcancel) buttoncancel.place(x=5, y=210, width=50, height=20) showinformation.mainloop() def findcourseinfor(): def show(): if textshow.get('1.0', 'end') != '': textshow.delete('1.0', 'end') else: connection = conn() cursor = cur(connection) try: cursor.execute('select * from course') data = list(cursor.fetchall()) textshow.insert('insert', "课程号:\t\t\t课程名:\t\t\t教师编号:") textshow.insert('insert', "\n") for i in data: print(i) textshow.insert('insert', '\t\t'.join(i)) textshow.insert('insert', "\n") except: connection.rollback() connection.close() cursor.close connection = conn() cursor = cur(connection) try: cursor.execute('select * from course') data = list(cursor.fetchall()) textshow.insert('insert', "课程号:\t\t\t课程名:\t\t\t教师编号:") textshow.insert('insert', "\n") for i in data: print(i) textshow.insert('insert', '\t\t\t'.join(i)) textshow.insert('insert', "\n") except: connection.rollback() connection.close() cursor.close def searchallcancel(): textshow.delete('1.0', 'end') findall = Toplevel() findall.title('查询课程信息') x, y = window_info(findall) findall.geometry("520x295+%d+%d" % (x, y)) findall['bg'] = 'dodgerblue' labelname = tkinter.Label(findall, text='查询所有课程信息?', bg='dodgerblue') labelname.place(x=5, y=20, width=100, height=20) buttonshow = tkinter.Button(findall, text="确定", command=show) buttonshow.place(x=5, y=50, width=50, height=20) textshow = tkinter.scrolledtext.ScrolledText(findall, width=75, height=9) textshow.place(x=5, y=80) buttoncancel = tkinter.Button(findall, text="清空", command=searchallcancel) buttoncancel.place(x=5, y=210, width=50, height=20) findall.mainloop() def selectcourse(): def show(): if textshow.get('1.0', 'end') != '': textshow.delete('1.0', 'end') else: connection = conn() cursor = cur(connection) try: cursor.execute('select * from course') data = list(cursor.fetchall()) textshow.insert('insert', "课程号:\t\t\t课程名:\t\t\t教师编号:") textshow.insert('insert', "\n") for i in data: print(i) textshow.insert('insert', '\t\t'.join(i)) textshow.insert('insert', "\n") except: connection.rollback() connection.close() cursor.close connection = conn() cursor = cur(connection) try: cursor.execute('select * from course') data = list(cursor.fetchall()) textshow.insert('insert', "课程号:\t\t\t课程名:\t\t\t教师编号:") textshow.insert('insert', "\n") for i in data: print(i) textshow.insert('insert', '\t\t\t'.join(i)) textshow.insert('insert', "\n") except: connection.rollback() connection.close() cursor.close def searchallcancel(): textshow.delete('1.0', 'end') def select(): connection = conn() cursor = cur(connection) try: cursor.execute('insert into sc values(%s,%s)', (loginingno, entrysearchone.get())) connection.commit() except: if addsuccessentry.get() != '': addsuccessentry.delete('0', 'end') addsuccessentry.insert('0', '选课失败!') else: addsuccessentry.insert('0', '选课失败!') connection.rollback() connection.close() cursor.close if addsuccessentry.get() != '': addsuccessentry.delete('0', 'end') addsuccessentry.insert('0', '选课成功!') else: addsuccessentry.insert('0', '选课成功!') def addcancel(): entrysearchone.delete('0', 'end') addsuccessentry.delete('0', 'end') findall = Toplevel() findall.title('学生选课') x, y = window_info(findall) findall.geometry("520x325+%d+%d" % (x, y)) findall['bg'] = 'dodgerblue' labelname = tkinter.Label(findall, text='查询所有课程信息?', bg='dodgerblue') labelname.place(x=5, y=20, width=100, height=20) buttonshow = tkinter.Button(findall, text="确定", command=show) buttonshow.place(x=5, y=50, width=50, height=20) textshow = tkinter.scrolledtext.ScrolledText(findall, width=75, height=9) textshow.place(x=5, y=80) labelname = tkinter.Label(findall, text='请输入课程编号:', bg='dodgerblue') labelname.place(x=5, y=210, width=100, height=20) entrysearchone = tkinter.Entry(findall, width=200) entrysearchone.place(x=5, y=240, width=150, height=20) addsuccessentry = tkinter.Entry(findall, width=200) addsuccessentry.place(x=5, y=270, width=75, height=20) buttoncancel = tkinter.Button(findall, text="选择", command=select) buttoncancel.place(x=5, y=300, width=50, height=20) buttoncancel = tkinter.Button(findall, text="重置", command=addcancel) buttoncancel.place(x=105, y=300, width=50, height=20) findall.mainloop() def findselectcourseinfor(): def show(): print('swj') if textshow.get('1.0', 'end') != '': textshow.delete('1.0', 'end') else: connection = conn() cursor = cur(connection) try: cursor.execute('select sno,sname,sclass,cno,cname from student,course where student.sno=sc.sno and course.cno=sc.cno and sno=%s',(loginingno)) data = list(cursor.fetchall()) textshow.insert('insert', "学号:\t\t姓名:\t\t班级:\t\t课程编号:\t\t课程名:") textshow.insert('insert', "\n") for i in data: print(i) textshow.insert('insert', '\t\t'.join(i)) textshow.insert('insert', "\n") except: connection.rollback() connection.close() cursor.close connection = conn() cursor = cur(connection) try: cursor.execute('select sc.sno,sname,sclass,sc.cno,course.cname from student,course,sc where student.sno=sc.sno and course.cno=sc.cno and sc.sno=%s',(loginingno)) data = list(cursor.fetchall()) textshow.insert('insert', "学号:\t\t姓名:\t\t班级:\t\t课程编号:\t\t课程名:") textshow.insert('insert', "\n") for i in data: print(i) textshow.insert('insert', '\t\t'.join(i)) textshow.insert('insert', "\n") except: connection.rollback() connection.close() cursor.close def searchallcancel(): textshow.delete('1.0', 'end') findall = Toplevel() findall.title('查询选课信息') x, y = window_info(findall) findall.geometry("520x295+%d+%d" % (x, y)) findall['bg'] = 'dodgerblue' labelname = tkinter.Label(findall, text='查询选课信息?', bg='dodgerblue') labelname.place(x=5, y=20, width=100, height=20) buttonshow = tkinter.Button(findall, text="确定", command=show) buttonshow.place(x=5, y=50, width=50, height=20) textshow = tkinter.scrolledtext.ScrolledText(findall, width=105, height=9) textshow.place(x=5, y=80) buttoncancel = tkinter.Button(findall, text="清空", command=searchallcancel) buttoncancel.place(x=5, y=210, width=50, height=20) findall.mainloop() print(3) indexofstudent = Toplevel() indexofstudent.title('学生信息管理系统-学生') x, y = window_info(indexofstudent) indexofstudent.geometry("430x425+%d+%d" % (x, y)) indexofstudent['bg'] = 'dodgerblue' labelname = tkinter.Label(indexofstudent, text='欢迎使用学生信息管理系统', bg='dodgerblue', font=("楷体", 20)) labelname.place(x=60, y=30, width=350, height=40) buttonadd = tkinter.Button(indexofstudent, text="查询学籍信息", command=showinfor) buttonadd.place(x=150, y=90, width=100, height=40) buttonadd = tkinter.Button(indexofstudent, text="查询课程信息", command=findcourseinfor) buttonadd.place(x=150, y=140, width=100, height=40) buttonadd = tkinter.Button(indexofstudent, text="选 课", command=selectcourse) buttonadd.place(x=150, y=190, width=100, height=40) buttonadd = tkinter.Button(indexofstudent, text="查询选课信息", command=findselectcourseinfor) buttonadd.place(x=150, y=240, width=100, height=40) buttonadd = tkinter.Button(indexofstudent, text="退出系统", command=exitsys) buttonadd.place(x=150, y=290, width=100, height=40) indexofstudent.mainloop() def login(): name = entryName.get() pwd = entryPwd.get() connection = conn() cursor = cur(connection) cursor.execute('select * from student') data = list(cursor.fetchall()) print(data) if data == []: tkinter.messagebox.showerror(message="账号或密码错误!") return 0 for i in data: print(i[2]) print(i[4]) if i[2] == name and i[4] == pwd: studentindex(name) student = Toplevel() student.title(' 登录-学生端') x, y = window_info(student) student.geometry("415x295+%d+%d" % (x, y)) student['bg'] = 'dodgerblue' labelname = tkinter.Label(student, text='欢迎使用学生信息管理系统', bg='dodgerblue', font=("楷体", 18)) labelname.place(x=60, y=30, width=300, height=40) labelName = tkinter.Label(student, text="学 号:", bg='dodgerblue', width=80) labelName.place(x=110, y=110, width=80, height=20) labelPwd = tkinter.Label(student, text="密 码:", bg='dodgerblue', width=80) labelPwd.place(x=110, y=135, width=80, height=20) entryName = tkinter.Entry(student, width=80, textvariable=varLoginName) entryName.place(x=210, y=110, width=80, height=20) entryPwd = tkinter.Entry(student, show='*', width=80, textvariable=varLoginPwd) entryPwd.place(x=210, y=135, width=80, height=20) bottonOk = tkinter.Button(student, text="登录", command=login, bg='dodgerblue') bottonOk.place(x=125, y=170, width=70, height=30) bottonCancel = tkinter.Button(student, text='注册', command=forstudentregister, bg='dodgerblue') bottonCancel.place(x=225, y=170, width=70, height=30) student.mainloop() root=tkinter.Tk(className=' 学生信息管理系统')x,y=window_info(root)root.geometry("415x295+%d+%d"%(x,y))root['bg']='dodgerblue' varLoginName=tkinter.StringVar()varLoginPwd=tkinter.StringVar() labelname = tkinter.Label(root, text='欢迎使用学生信息管理系统', bg='dodgerblue', font=("楷体", 18))labelname.place(x=60, y=30, width=300, height=40) bottonOk=tkinter.Button(root,text="学生登录",command=studentlogin,bg='dodgerblue')bottonOk.place(x=150,y=140,width=100,height=40)bottonCancel=tkinter.Button(root,text='管理员登录',command=teacherlogin,bg='dodgerblue')bottonCancel.place(x=150,y=200,width=100,height=40) def createdatabase(): conn = pymysql.connect("localhost", "root", "root") cur = conn.cursor() cur.execute('create database if not exists sch') def createtable(): connection = conn() cursor = cur(connection) sqlstudent="""create table if not exists student( sname char(45) not null, sage char(45), sno char(45) primary key, sclass char(45), loginpwd char(45) )engine=innodb""" cursor.execute(sqlstudent) sqllogin="""create table if not exists login( user char(45)primary key, password char(45) not null )engine=innodb""" cursor.execute(sqllogin) connection.commit() cursor.execute("""insert into login(user,password) values('user','pwd')""") connection.commit() sqlteacher="""create table if not exists teacher( tno char(45) primary key, tname char(45) )engine=innodb""" cursor.execute(sqlteacher) connection.commit() sqlcourse="""create table if not exists course( cno char(45) , cname char(45), tno char(45), constraint pk_course primary key (cno,tno) )engine=innodb""" cursor.execute(sqlcourse) connection.commit() sqlsc="""create table if not exists sc( sno char(45), cno char(45), constraint pk_sc primary key (sno,cno) )engine=innodb""" cursor.execute(sqlsc) connection.commit() createdatabase()createtable() root.mainloop()感谢各位的阅读!关于"python tkinter怎么实现学生信息管理系统"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
学生
信息
课程
系统
查询
学号
管理
管理系统
姓名
班级
成功
密码
年龄
登录
输入
楷体
教师
账号
内容
学籍
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
石家庄的的打车软件开发
xmind 集成数据库
哈利波特刷新服务器列表要多久
2013管理与服务器
现代信息网络安全
上海姓付的软件开发老板
西安市公安局网络安全宣传中心
安全组用于设置云服务器
数据库热搜表制作方法
软件开发前端招工
网络技术是人工智能吗
4060数据库错误是什么意思
医保网络安全维护记录表
服务器是谁在管理员
无线网络网络安全改造项目方案
软件开发的所有语言
数据库前端怎么连接
创造mysql数据库的命令
百度服务器出现问题了吗
基于客户 服务器模式
杭州dns服务器地址
db2和数据库
硬件开发软件开发顺序
邯郸市网络安全宣传活动
网络安全设备做3c认证
网络安全治理小组
耕地资源土壤数据库
长沙邦企网络技术有限公司
警校网络安全与执法专业好不好
上海杰航软件开发有限公司