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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值