python 数据库实现学生管理系统(python+mysql实现教务管理系统)
类别:脚本大全 浏览量:206
时间:2022-03-30 00:02:49 python 数据库实现学生管理系统
python+mysql实现教务管理系统本文实例为大家分享了python实现教务管理系统,供大家参考,具体内容如下
mysql+python构成教务管理系统,提供系统管理员,教职工,学生三级。有注册,添加,修改,发布信息等功能。
Login.py
|
#-*- coding:utf-8 -*- #####系统登录 import os import MySQLdb import time class Login: def __init__( self ,conn): self .account = '' self .password = '' self .level = 2 self .conn = conn def LoginSurface( self ,info): os.system( 'cls' ) width = 50 title = 'LOGIN' body1 = '[A]Admin' body2 = '[T]Teacher' body3 = '[S]Student' body4 = '[Q]Quit' print '=' * width print ' ' * ((width - len (title)) / 2 ), title print ' ' * ((width - len (body1)) / 2 ),body1 print ' ' * ((width - len (body1)) / 2 ),body2 print ' ' * ((width - len (body1)) / 2 ),body3 print ' ' * ((width - len (body1)) / 2 ),body4 print ' ' * ((width - len (info)) / 2 ), info print '-' * width def MainFunc( self ): err = '' while True : self .LoginSurface(err) level = raw_input ( 'Access:' ) level = level.upper() if level = = 'A' : self .level = 0 elif level = = 'T' : self .level = 1 elif level = = 'S' : self .level = 2 elif level = = 'Q' : return False else : err = 'Error Action!' continue self .account = raw_input ( 'Account:' ) self .password = raw_input ( 'Password:' ) if self .CheckAccount(): err = 'Login Success!' self .LoginSurface(err) print 'Please wait...' time.sleep( 3 ) return True ; else : err = 'Login Failed!' def GetLoginAccount( self ): return [ self .account, self .password, self .level] def CheckAccount( self ): cur = self .conn.cursor() sqlcmd = "select Account,Password,AccountLevel from LoginAccount where Account = '%s'" % self .account if cur.execute(sqlcmd) = = 0 : return False temp = cur.fetchone() cur.close() if temp[ 1 ] = = self .password and temp[ 2 ] = = self .level: return True else : return False def Quit( self ): pass if __name__ = = '__main__' : conn = MySQLdb.connect(user = 'root' ,passwd = '123456' ,db = 'test' ); a = Login(conn) a.MainFunc() a.Quit() conn.close() |
main.py
|
#-*- coding:utf-8 -*- ####系统入口 import os import MySQLdb import Student import Teacher import Login import SystemManager if __name__ = = '__main__' : conn = MySQLdb.connect(user = 'root' ,passwd = '123456' ,db = 'test' ) log = Login.Login(conn) if log.MainFunc(): account = log.GetLoginAccount() if account[ 2 ] = = 0 : usr = SystemManager.SystemManager(conn,account[ 0 ],account[ 1 ]) usr.MainFunc() elif account[ 2 ] = = 1 : usr = Teacher.Teacher(conn,account[ 0 ],account[ 1 ]) usr.MainFunc() elif account[ 2 ] = = 2 : usr = Student.Student(conn,account[ 0 ],account[ 1 ]) usr.MainFunc() else : conn.close() raise exception() conn.close() |
Student.py
|
#-*- coding:utf-8 -*- ####学生账号 import MySQLdb import os class Student: def __init__( self ,conn,account,passwd): ###构造,conn连接数据库 cur = conn.cursor() sqlcmd = "select Name,Gender,Birth,Academy,Major,Grade,TeacherNo from StudentInfo where StudentNo = '%s'" % account cur.execute(sqlcmd) res = cur.fetchone() sqlcmd = "select Name from TeacherInfo where TeacherNo = '%s'" % res[ 6 ] cur.execute(sqlcmd) TeacherName = cur.fetchone() cur.close() self .width = 150 self .conn = conn self .account = account self .Password = passwd self .Name = res[ 0 ] self .Gender = res[ 1 ] self .Birth = res[ 2 ] self .Accademy = res[ 3 ] self .Major = res[ 4 ] self .Grade = res[ 5 ] self .Teacher = TeacherName[ 0 ] def MainFunc( self ): ###主要执行函数 info = '' while True : self .MainSurface(info) choice = raw_input ( 'What to do?' ) choice = choice.upper() if choice ! = 'P' and choice ! = 'M' and choice ! = 'Q' : info = 'Error Action!' continue if choice = = 'P' : info = self .PersonalInfo() elif choice = = 'M' : info = self .OperatMessage() else : break def PersonalInfo( self ): ###个人信息 info = '' while True : self .PersonalInfoSurface(info) choice = raw_input ( 'What to do?' ) choice = choice.upper() if choice ! = 'C' and choice ! = 'Q' : info = 'Error Action!' continue if choice = = 'C' : info = self .ChangePersonalInfo() else : break return info def ChangePersonalInfo( self ): ###修改个人信息 NewGender = self .Gender NewBirth = self .Birth NewPw = self .Password while True : choice = raw_input ( 'Change Gender?(y/n)' ) choice = choice.lower() if choice = = 'y' : NewGender = raw_input ( 'New Gender:' ) break elif choice = = 'n' : break else : pass while True : choice = raw_input ( 'change Born Date?(y/n)' ) choice = choice.lower() if choice = = 'y' : NewBirth = raw_input ( 'New Born Date:' ) break elif choice = = 'n' : break else : pass while True : choice = raw_input ( 'change Password?(y/n)' ) choice = choice.lower() if choice = = 'y' : NewPw = raw_input ( 'New Password:' ) break elif choice = = 'n' : break else : pass info = 'Change Success!' cur = self .conn.cursor() if NewGender ! = self .Gender or NewBirth ! = self .Birth: sqlcmd = "update StudentInfo set Gender = '%s',Birth = '%s' where StudentNo = '%s'" % (NewGender,NewBirth, self .account) if cur.execute(sqlcmd) = = 0 : self .conn.rollback() cur.close() return 'Change Fail!' if NewPw ! = self .Password: sqlcmd = "update LoginAccount set Password = '%s' where Account='%s'" % (NewPw, self .account) if cur.execute(sqlcmd) = = 0 : self .conn.rollback() cur.close() return 'Change Fail!' else : self .conn.commit() self .Gender = NewGender self .Birth = NewBirth self .Password = NewPw cur.close() return 'Change Success!' def OperatMessage( self ): info = '' while True : self .MessageSurface(info) self .MessageList() choice = raw_input ( 'What to do?' ) choice = choice.upper() if choice = = 'M' : msg = input ( 'Message Id:' ) info = self .MessageInfo(msg) elif choice = = 'Q' : break ; else : info = 'Error Action!' return info def MessageList( self ): ###查看消息列表 cur = self .conn.cursor() print '' sqlcmd = "select Id,SenderName,SendTime,Title from AllMessage where statu = 'pass' and MsgLevel = 1" if cur.execute(sqlcmd) = = 0 : return print '-' * self .width while True : temp = cur.fetchone() if not temp: break ; print '%3d%-20s%-50s%s' % (temp[ 0 ],temp[ 1 ],temp[ 3 ],temp[ 2 ]) print '-' * self .width cur.close() def MessageInfo( self ,MsgNo): ###查看详细消息, No消息编号 cur = self .conn.cursor() sqlcmd = "select SenderName,SendTime,Title,Content from AllMessage where Id = %d" % MsgNo if cur.execute(sqlcmd) = = 0 : cur.close() return 'Read Fail!' article = cur.fetchone() cur.close() os.system( 'cls' ) print '=' * self .width print ' ' * (( self .width - len (article[ 2 ])) / 2 ) , article[ 2 ] head = article[ 0 ] + ' ' + str (article[ 1 ]) print ' ' * (( self .width - len (head)) / 2 ) , head print '-' * self .width print article[ 3 ] print '=' * self .width raw_input ( 'Press any key to return!' ) return '' def Quit( self ): ###退出 pass def MainSurface( self ,info): ###主界面 os.system( 'cls' ) print '=' * self .width title = 'Welcome %s!' % self .Name body1 = '[P]Personal Information' body2 = '[M]Message' body3 = '[Q]Quit' print ' ' * (( self .width - len (title)) / 2 ),title print ' ' * (( self .width - len (body1)) / 2 ),body1 print ' ' * (( self .width - len (body1)) / 2 ),body2 print ' ' * (( self .width - len (body1)) / 2 ),body3 print ' ' * (( self .width - len (info)) / 2 ),info print '=' * self .width def MessageSurface( self ,info): ###消息界面 os.system( 'cls' ) print '=' * self .width title = 'MESSAGES' body1 = '[M]Message Detail' body2 = '[Q]Quit' print ' ' * (( self .width - len (title)) / 2 ),title print ' ' * (( self .width - len (body1)) / 2 ),body1 print ' ' * (( self .width - len (body1)) / 2 ),body2 print ' ' * (( self .width - len (info)) / 2 ),info print '=' * self .width def PersonalInfoSurface( self ,info): ###个人信息界面 os.system( 'cls' ) print '=' * self .width title = 'PERSONAL INFORMATION' body1 = '[C]Change Information' body2 = '[Q]Quit' print ' ' * (( self .width - len (title)) / 2 ),title print ' ' * (( self .width - len (body1)) / 2 ),body1 print ' ' * (( self .width - len (body1)) / 2 ),body2 print ' ' * (( self .width - len (info)) / 2 ),info print '-' * self .width body3 = ' Name: %s' % self .Name body4 = 'Student Number: %s' % self .account body5 = ' Gender: %s' % self .Gender body6 = ' Birth: %s' % self .Birth body7 = ' Accademy: %s' % self .Accademy body8 = ' Major: %s' % self .Major body9 = ' Grade: %s' % self .Grade body10 = ' Teacher: %s' % self .Teacher print ' ' * (( self .width - len (body6)) / 2 ),body3 print ' ' * (( self .width - len (body6)) / 2 ),body4 print ' ' * (( self .width - len (body6)) / 2 ),body5 print ' ' * (( self .width - len (body6)) / 2 ),body6 print ' ' * (( self .width - len (body6)) / 2 ),body7 print ' ' * (( self .width - len (body6)) / 2 ),body8 print ' ' * (( self .width - len (body6)) / 2 ),body9 print ' ' * (( self .width - len (body6)) / 2 ),body10 print '=' * self .width if __name__ = = '__main__' : conn = MySQLdb.connect(user = 'root' ,passwd = '123456' ,db = 'test' ) stu = Student(conn, '0000001' , '123456' ) stu.MainFunc() conn.close() |
完整代码请点击下载:python实现教务管理系统
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
您可能感兴趣
- mysql日期与时间函数(MySQL日期函数与时间函数汇总MySQL 5.X)
- mysql update 多个字段(mysql update case 更新字段值不固定的操作)
- mysql中如何设置多个主键(Mysql 增加主键或者修改主键的sql语句操作)
- mysql8.0.25安装及配置超详细教程(MySQL8.0.21安装步骤及出现问题解决方案)
- mysql 如何选择隔离级别(全面解析MySQL中的隔离级别)
- navicat15.0.28注册码(Navicat for MySQL 11注册码激活码汇总)
- mysql怎么创建联合索引(mysql的联合索引复合索引的实现)
- mysql死锁情况(MySQL kill不掉线程的原因)
- 分享mysql设计规范(MySQL 可扩展设计的基本原则)
- php redis应用场景(PHP商品秒杀问题解决方案实例详解mysql与redis)
- MySQL中使用mysqldump命令备份
- mysql并发控制的重要方式(Mysql服务添加 iptables防火墙策略的方案)
- mysql发生系统错误(MySQL too many connections错误的原因及解决)
- mysql游标的使用(MySQL 游标的作用与使用相关)
- mysql 死锁原因(MySQL锁等待与死锁问题分析)
- mysql统计下个月过生日的人数(Mysql出生日期转换为年龄并分组统计人数的方法示例)
- 下雪会怎样(下雪怎样画)
- 白蓝色穿搭(白蓝色衣服配什么裤子)
- 天空是什么颜色(天空是什么颜色的英语)
- 高马尾扎发(高马尾扎发教程视频)
- 这里输入关键词(请手动输入关键词)
- 小说 顾瑾岚拿出一套飞行棋,别说你连飞行棋都不会哦(顾瑾岚拿出一套飞行棋)
热门推荐
- nodejsweb服务(Nodejs实现内网穿透服务)
- wampserver怎么使用(wampserver怎么用?如何使用wampserver来配置本地php环境)
- mysql索引为什么是b+树(mysql 使用B+树索引有哪些优势)
- sqlserver存储过程参数默认值(sql server使用临时存储过程实现使用参数添加文件组脚本复用)
- javascript制作表格(JavaScript实现动态表格效果)
- jquery判断是否显示或隐藏
- xml特殊字符的处理
- sql server2008无法连接怎么办(SQL Server 2008 R2登录失败的解决方法)
- dedecms中的有些功能如何修改(织梦DEDECMS中用JS方式调用评论总数的技巧)
- docker离线安装步骤(Windows下Docker安装各种软件的详细过程)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9