python tkinter怎么实现学生信息管理系统
发表于:2025-02-12 作者:千家信息网编辑
千家信息网最后更新 2025年02月12日,这篇文章给大家分享的是有关python tkinter怎么实现学生信息管理系统的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下初学python,代码写的比较繁杂,
千家信息网最后更新 2025年02月12日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安全错误
数据库的锁怎样保障安全
亿企网络技术有限公司
网络安全的基本应用有哪些
中国专利数据库文摘
洛阳西工网络安全大队
教育局网络安全专项检查
莱州微信公众号软件开发企业
湖南居民健康卡服务器云主机
郑州国家网络安全周视频
dccess数据库帮助文档
浙江互联网络技术诚信服务
嵌入式软件开发贪吃蛇
一小时生存如何选服务器
数据库的连接数的含义
服务器字母
成都远大智能网络技术
王者我的服务器里没有以前的区了
参加线上软件开发项目
大专学计算机网络技术英语书
网络安全DVWA实训总结
令牌服务器
id车联网免费服务器
软件开发绘图工具的使用
emule没有服务器
java连接到服务器时出错
金山区多层软件开发设备
数据库tpce测试
长春软件开发 信赖吉网传媒
linux服务器 租赁
网络安全故事百度文库
三石网络技术有限公司