Python基于mysql实现学生管理系统
时间:2019-02-21
这篇文章主要为大家详细介绍了Python基于mysql实现学生管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本篇文章主要介绍了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("输入序号无效")
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
- zookeeper集群搭建
- WCF技术剖析之二十七: 如何将一个服务发布成WSDL[编程篇]
- 浅谈反馈式按钮的设计与实现
- 对比手游和PC游戏的发展,小程序会成为手游开发的热点?
- 雷军旗下金山云再获融资2.2亿美元
- WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[WS标准篇]
- zookeeper配置详解
- WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[元数据描述篇]
- zookeeper命令行(zkCli.sh&zkServer.sh)使用及四字命令
- [WCF的Binding模型]之三:信道监听器(Channel Listener)
- zookeeper监控告警
- 扩展ToolBarManager、ListView和Grid控件以实现气球式的ToolTip
- Linux同步机制 - 基本概念(死锁,活锁,饿死,优先级反转,护航现象)
- Linux同步机制 - 多线程开发总结
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 不会玩阴阳师的我带你一键下载《阴阳师:百闻牌》所有卡牌并调用百度OCR识别文字信息
- 微信小程序生命周期学习笔记-页面篇
- Python 字典 使用技巧
- 微信小程序生命周期学习笔记-组件
- C语言入门系列之2.数据类型、运算符和表达式
- 树莓派的cpu与gpu通信设计浅析
- Python全栈(七)Flask框架之5.视图高级--类视图和蓝图
- Python全栈(六)项目前导之5.使用GitHub进行多人协同开发
- 附002.Nginx代理相关模块解析
- ApiBoot v2.3.x分支第一个版本发布,重构源码架构设计
- Python全栈(七)Flask框架之1.Flask简介与URL和视图介绍
- 两个CSS知识点:BFC和选择器权重
- C语言入门系列之9.预处理
- Python爬虫常见异常及解决办法
- 理解nodejs中js和c++的通信原理