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 8.0.15配置MGR单主多从的方法)
- mysql8.0.15安装详细教程(mysql8.0.11数据目录迁移的实现)
- mysql简单查询基本语句(详解MySQL 查询语句的执行过程)
- django操作默认数据库(Django数据库类库MySQLdb使用详解)
- 如何用wampserver打开自己写的php(WampServer下安装多个版本的PHP、mysql、apache图文教程)
- mysql的null值跟空值(你知道mysql中空值和null值的区别吗)
- centos7可以装mysql吗(详解腾讯云CentOS7.0使用yum安装mysql及使用遇到的问题)
- mysql突然报错206无法连接(详解MySQL连接挂死的原因)
- mysqlupdate怎么设置(MySQL update 语句的正确用法)
- mysql定时任务
- mysql数据类型图解(MySQL数据库主从技术GTID大揭秘)
- mysql如何操作日期
- mysql死锁是什么原因(MySQL的MaxIdleConns不合理,会变成短连接的原因)
- mysql百万数据分页查询优化方案(MySQL单表亿级数据分页怎么优化?)
- mysql高级概念(MySQL 自定义变量的概念及特点)
- mysql索引失效的几种情况(MySql范围查找时索引不生效问题的原因分析)
- 超撩人治愈的绝美水彩,原来出自她之手 一笔一画令无数人沉醉(超撩人治愈的绝美水彩)
- 新手的勾线(新手的勾线)
- ()
- 书法欣赏 宋.志南诗《绝句》(宋.志南诗绝句)
- 每周一首古诗 《绝句》(每周一首古诗绝句)
- 蓝色代表什么(蓝色代表什么性格的人)
热门推荐
- html5自定义结构指令(浅析HTML5 meta viewport参数)
- vscode快速生成html框架(VSCode 自定义html5模板的实现)
- docker compose使用方法(docker和docker-compose一键安装教程支持在线和离线)
- python删除列表中的重复元素(Python实现去除列表中重复元素的方法总结7种方法)
- CSS中background-attachment
- php缓存技术学习(简单实用的PHP文本缓存类实例)
- 怎么用python实现链表(Python3实现的判断回文链表算法示例)
- python中字符串常用函数或方法(Python3.5字符串常用操作实例详解)
- js解除网页屏蔽(js检测标题与描述中的关键词发现就替换或跳转到别的页面)
- Html5中的<section>标签
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9