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实现字符串格式化的方法小结
Feb 20 Python
简单了解OpenCV是个什么东西
Nov 10 Python
解读! Python在人工智能中的作用
Nov 14 Python
python导出hive数据表的schema实例代码
Jan 22 Python
python3利用venv配置虚拟环境及过程中的小问题小结
Aug 01 Python
python 遍历列表提取下标和值的实例
Dec 25 Python
python使用time、datetime返回工作日列表实例代码
May 09 Python
Django 实现图片上传和显示过程详解
Jul 18 Python
Python 中pandas索引切片读取数据缺失数据处理问题
Oct 09 Python
python实现的汉诺塔算法示例
Oct 23 Python
Python笔记之facade模式
Nov 20 Python
python打开音乐文件的实例方法
Jul 21 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
微信营销平台系统?刮刮乐的开发
2014/06/10 PHP
微信公众号判断用户是否已关注php代码解析
2016/06/24 PHP
详解php中 === 的使用
2016/10/24 PHP
2017年最好用的9个php开发工具推荐(超好用)
2017/10/23 PHP
PHP封装的简单连接MongoDB类示例
2019/02/13 PHP
laravel返回统一格式错误码问题
2019/11/04 PHP
DOM节点的替换或修改函数replaceChild()用法实例
2015/01/12 Javascript
JQuery限制复选框checkbox可选中个数的方法
2015/04/20 Javascript
JavaScript中isPrototypeOf函数作用和使用实例
2015/06/01 Javascript
分享12个非常实用的JavaScript小技巧
2016/05/11 Javascript
利用angular.copy取消变量的双向绑定与解析
2016/11/25 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
2017/04/06 Javascript
详谈jQuery中使用attr(), prop(), val()获取value的异同
2017/04/25 jQuery
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
2017/05/15 jQuery
QRCode.js:基于JQuery的生成二维码JS库的使用
2017/06/23 jQuery
js 获取json数组里面数组的长度实例
2017/10/31 Javascript
使用ajax的post同步执行(实现方法)
2017/12/21 Javascript
vue项目中使用ueditor的实例讲解
2018/03/05 Javascript
基于vue2.0动态组件及render详解
2018/03/17 Javascript
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
js实现文字头像的生成代码
2020/03/07 Javascript
Vue实现简单的跑马灯
2020/05/25 Javascript
vue组件中传值EventBus的使用及注意事项说明
2020/11/16 Javascript
使用Python3编写抓取网页和只抓网页图片的脚本
2015/08/20 Python
浅析Python数据处理
2018/05/02 Python
python的re模块使用方法详解
2019/07/26 Python
Levi’s西班牙官方网站:李维斯,著名的牛仔裤品牌
2020/08/20 全球购物
大学毕业登记表自我鉴定
2013/10/09 职场文书
外贸主管求职简历的自我评价
2013/10/23 职场文书
高中地理教学反思
2014/01/29 职场文书
洗手间标语
2014/06/23 职场文书
党的群众路线教育实践活动通讯稿
2014/09/10 职场文书
观看《周恩来的四个昼夜》思想汇报
2014/09/12 职场文书
关于做家务的心得体会
2016/01/23 职场文书
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS
关于MySQL中explain工具的使用
2023/05/08 MySQL