本文实例为大家分享了python tkinter实现学生信息管理系统的具体代码,供大家参考,具体内容如下
初学python,代码写的比较繁杂,系统功能还有完善的空间
系统使用了mysql数据库,数据库:sch,用户名:root ,密码:123456,创建表的语句写在代码里面了
?import tkinter import tkinter.messagebox import re import pymysql from tkinter import scrolledtext import os from 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 cur def 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测试数据mit() ? ? ? ? ? ? ? ? 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测试数据mit() ? ? ? ? ? ? ? ? ? ? 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测试数据mit() ? ? ? ? ? ? ? ? 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测试数据mit() ? ? ? ? ? ? ? ? ? ? ? ? ? ? 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测试数据mit() ? ? ? ? ? ? ? ? ? ? ? ? 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测试数据mit() ? ? ? ? ? ? ? ? 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测试数据mit() ? ? ? ? ? ? ? ? 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测试数据mit() ? ? ? ? ? ? ? ? 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测试数据mit() ? ? ? ? ? ? ? ? ? ? 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测试数据mit() ? ? ? ? ? ? ? ? ? ? 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测试数据mit() ? ? ? ? ? ? ? ? ? ? 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测试数据mit() ? ? ? ? ? ? ? ? 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测试数据mit() ? ? ? ? ? ? ? ? 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测试数据mit() ? ? cursor.execute("""insert into login(user,password) values('user','pwd')""") ? ? connection测试数据mit() ? ?? ? ? sqlteacher="""create table if not exists teacher( ? ? ? ? ? ? ? ? ? ? tno char(45) primary key, ? ? ? ? ? ? ? ? ? ? tname char(45)? ? ? ? ? ? ? ? ? ? ? )engine=innodb""" ? ? cursor.execute(sqlteacher) ? ? connection测试数据mit() ? ? ? 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测试数据mit() ? ? ? 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测试数据mit() ? ? ?? createdatabase() createtable() ? root.mainloop()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
查看更多关于python tkinter实现学生信息管理系统的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did99794