当前位置:脚本大全 > > 正文

python 数据库实现学生管理系统(python+mysql实现教务管理系统)

时间:2022-03-30 00:02:49类别:脚本大全

python 数据库实现学生管理系统

python+mysql实现教务管理系统

本文实例为大家分享了python实现教务管理系统,供大家参考,具体内容如下

mysql+python构成教务管理系统,提供系统管理员,教职工,学生三级。有注册,添加,修改,发布信息等功能。

Login.py

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • #-*- 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

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • #-*- 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

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • #-*- 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实现教务管理系统

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

    上一篇下一篇

    猜您喜欢

    热门推荐