Python基于mysql实现学生管理系统


Posted in Python onFebruary 21, 2019

本篇文章主要介绍了Python基于mysql实现学生管理系统,分享给大家,具体如下:

import pymysql
import re
 
def idinput(string):
 ID = input(string)
 pattern = re.compile("^\d{1,3}$")
 while not re.match(pattern, ID):
  ID = input("请输入1-3位整数:")
 return ID
 
def appendStudentInfo():
 ID =idinput("请输入学生学号:")
 db=pymysql.connect(host="127.0.0.1",user="root",passwd="hisense",db="test",port=3306,charset="utf8")
 cursor=db.cursor()
 sql = "select * from StuSys where ID = '%s'" % ID
 cursor.execute(sql)
 while cursor.rowcount > 0 :
  ID = idinput("该学号已存在,请重新输入:")
  sql = "select * from StuSys where ID = '%d'" % int(ID)
  cursor.execute(sql)
 
 name=input("请输入学生姓名:")
 
 chinese=input("请输入语文成绩:")
 while not chinese.isdigit() or int(chinese)>100 or int(chinese)<0:
  chinese = input("输入错误,请重新输入:")
 
 math =input("请输入数学成绩:")
 while not math.isdigit() or int(math) > 100 or int(math) < 0:
  math = input("输入错误,请重新输入:")
 
 english=input("请输入英语成绩:")
 while not english.isdigit() or int(english) > 100 or int(english) < 0:
  english = input("输入错误,请重新输入:")
 
 total=int(chinese)+int(math)+int(english)
 
 sql="""INSERT INTO StuSys(ID,
   NAME,CHINESE,ENGLISH,MATH,TOTAL)
   VALUES (%s,%s,%s,%s,%s,%s)"""
 cursor.execute(sql,(ID,name,chinese,english,math,total))
 db.commit()
 db.close()
 
def delstudent():
 delstudentid = idinput("请输入要删除的学生学号:")
 if querystudent(delstudentid):
  select = input("是否删除:是(Y)/否(N)")
  if select == "Y" or select == "y":
   db = pymysql.connect(host="127.0.0.1", user="root", passwd="hisense", db="test", port=3306, charset="utf8")
   cursor = db.cursor()
   sql = "delete from stusys where ID =%s" %delstudentid
   cursor.execute(sql)
   db.commit()
   db.close()
   print("删除成功")
  elif select == "N" or select == "n":
   print("取消删除")
  else:
   print("输入错误")
 
 
def querystudent(querystudentid):
 db=pymysql.connect(host="127.0.0.1",user="root",passwd="hisense",db="test",port=3306,charset="utf8")
 cursor=db.cursor()
 sql="select * from stusys where ID=%s"%querystudentid
 cursor.execute(sql)
 if cursor.rowcount ==0 :
  print("不存在该学生信息")
  return False
 else:
  print("该学生信息如下:")
  results =cursor.fetchall()
  print("ID=%d,NAME=%s,CHINESE=%d,ENGLISH=%d,MATH=%d,TOTAL=%d" % \
   (results[0][0], results[0][1], results[0][2], results[0][3], results[0][4],results[0][5]))
  return True
 
def modifystudentifo():
 modifyid = idinput("请输入要的学生学号:")
 if querystudent(modifyid):
  name = input("请重新输入学生姓名:")
 
  chinese = input("请重新输入语文成绩:")
  while not chinese.isdigit() or int(chinese) > 100 or int(chinese) < 0:
   chinese = input("输入错误,请重新输入:")
 
  math = input("请重新输入数学成绩:")
  while not math.isdigit() or int(math) > 100 or int(math) < 0:
   math = input("输入错误,请重新输入:")
 
  english = input("请重新输入英语成绩:")
  while not english.isdigit() or int(english) > 100 or int(english) < 0:
   english = input("输入错误,请重新输入:")
 
  total = int(chinese) + int(math) + int(english)
  db = pymysql.connect(host="127.0.0.1", user="root", passwd="hisense", db="test", port=3306, charset="utf8")
  cursor = db.cursor()
  sql1="update stusys set name ='%s' where id = %s"%(name,modifyid)
  cursor.execute(sql1)
  sql2="update stusys set math = %s where id = %s"%(math,modifyid)
  cursor.execute(sql2)
  sql3 = "update stusys set english = %s where id =%s"%(english,modifyid)
  cursor.execute(sql3)
  sql4 = "update stusys set total = %s where id = %s"%(total,modifyid)
  cursor.execute(sql4)
  sql5 = "update stusys set chinese = %s where id = %s"%(chinese,modifyid)
  cursor.execute(sql5)
  db.commit()
  db.close()
 
def allinfo():
 db=pymysql.connect(host="127.0.0.1",user="root",passwd="hisense",db="test",port=3306,charset="utf8")
 cursor=db.cursor()
 sql="select * from stusys"
 cursor.execute(sql)
 results= cursor.fetchall()
 for row in results:
  ID = row[0]
  NAME = row[1]
  CHINESE = row[2]
  ENGLISH = row[3]
  MATH = row[4]
  TOTAL = row[5]
  # 打印结果
  print("ID=%d,NAME=%s,CHINESE=%d,ENGLISH=%d,MATH=%d,TOTAL=%d" % \
    (ID, NAME, CHINESE, ENGLISH, MATH,TOTAL))
 
def studentMenu():
 print("="*30)
 print("学生管理系统")
 print("1、添加学生信息")
 print("2、删除学生信息")
 print("3、查询学生信息")
 print("4、修改学生信息")
 print("5、全部学生信息")
 print("6、退出")
 print("="*30)
 
 
 
if __name__ == '__main__':
 
 while True:
  studentMenu()
  menuindex = input("请输入选项序号:")
  while not menuindex.isdigit():
   menuindex = input("输入错误,请重新输入:")
  if int(menuindex) ==1:
   appendStudentInfo()
  elif int(menuindex) ==2:
   delstudent()
  elif int(menuindex) ==3:
   querystudentid = idinput("请输入要查询的学生学号:")
   querystudent(querystudentid)
  elif int(menuindex) ==4:
    modifystudentifo()
  elif int(menuindex) == 5:
    allinfo()
  elif int(menuindex) == 6:
   break
  else:
   print("输入序号无效")

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

Python 相关文章推荐
Python代码的打包与发布详解
Jul 30 Python
详解Python3中yield生成器的用法
Aug 20 Python
Python中在脚本中引用其他文件函数的实现方法
Jun 23 Python
Python将多份excel表格整理成一份表格
Jan 03 Python
Python logging管理不同级别log打印和存储实例
Jan 19 Python
python3下实现搜狗AI API的代码示例
Apr 10 Python
python实现移位加密和解密
Mar 22 Python
Python3中_(下划线)和__(双下划线)的用途和区别
Apr 26 Python
python实现趣味图片字符化
Apr 30 Python
简单了解Django应用app及分布式路由
Jul 24 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
Mar 03 Python
Python pandas之求和运算和非空值个数统计
Aug 07 Python
python+mysql实现教务管理系统
Feb 20 #Python
python Tkinter版学生管理系统
Feb 20 #Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
Feb 20 #Python
Python实战购物车项目的实现参考
Feb 20 #Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
Feb 20 #Python
python3+pyqt5+itchat微信定时发送消息的方法
Feb 20 #Python
钉钉群自定义机器人消息Python封装的实例
Feb 20 #Python
You might like
给初学PHP的5个入手程序
2006/11/23 PHP
php获取参数的几种方法总结
2014/02/18 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
PC端微信扫码支付成功之后自动跳转php版代码
2017/07/07 PHP
Domino中运用jQuery读取视图内容的方法
2009/10/21 Javascript
教您去掉ie网页加载进度条的方法
2010/12/09 Javascript
基于jquery实现发送文章到手机的代码
2014/12/26 Javascript
跟我学习JScript的Bug与内存管理
2015/11/18 Javascript
JS延时提示框实现方法详解
2015/11/26 Javascript
jquery读写cookie操作实例分析
2015/12/24 Javascript
HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
2016/01/26 Javascript
js replace()去除代码中空格的实例
2017/02/14 Javascript
基于Vue2.0的分页组件
2017/03/16 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
2018/05/17 Javascript
JavaScript实现的简单Tab点击切换功能示例
2018/07/06 Javascript
JavaScript中this关键字用法实例分析
2018/08/24 Javascript
使用vue开发移动端管理后台的注意事项
2019/03/07 Javascript
JS将时间秒转换成天小时分钟秒的字符串
2019/07/10 Javascript
解决layui表格的表头不滚动的问题
2019/09/04 Javascript
vue 更改连接后台的api示例
2019/11/11 Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
2020/04/22 Javascript
Python连接Redis的基本配置方法
2018/09/13 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
2019/06/03 Python
python elasticsearch环境搭建详解
2019/09/02 Python
如何基于Python创建目录文件夹
2019/12/31 Python
tensorflow 实现打印pb模型的所有节点
2020/01/23 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
Django Admin 上传文件到七牛云的示例代码
2020/06/20 Python
德国最新街头服饰网上商店:BODYCHECK
2019/09/15 全球购物
人力资源行政经理自我评价
2013/10/23 职场文书
文明家庭事迹材料
2014/12/20 职场文书
学生会个人总结范文
2015/02/15 职场文书
个人专业技术总结
2015/03/05 职场文书
毕业典礼主持词
2015/06/29 职场文书
写好Python代码的几条重要技巧
2021/05/21 Python
Python中的协程(Coroutine)操作模块(greenlet、gevent)
2022/05/30 Python