怎么用python mysql实现学生成绩管理系统
发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,这篇文章主要讲解了"怎么用python mysql实现学生成绩管理系统",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么用python mysql实现
千家信息网最后更新 2025年11月16日怎么用python mysql实现学生成绩管理系统
这篇文章主要讲解了"怎么用python mysql实现学生成绩管理系统",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么用python mysql实现学生成绩管理系统"吧!
1 、首先如果你python中没安装mysql的驱动,还是要打开cmd命令行安装一下才可以使用:
pip3 install PyMySQL

2 、创建数据库studentdb,你可以在图形化界面sqlyog中创建:

3 、然后在数据库中创建表st
4 、python连接数据库的核心代码:
db = pymysql.connect(host='localhost', user='root', password='333', database='studentdb') cursor = db.cursor()
user就是你自己设置的用户名,password就是你自己设置的密码,database就是你刚刚设置的数据库
5 、另外你也可以选择mysql命令行创建数据库以及数据表都是可以的
6 、完整代码如下:
import pymysqldef menu(): print("\t\t学生信息管理系统\t\t") print("\t\t1 添加学生\t\t") print("\t\t2 删除学生\t\t") print("\t\t3 修改学生\t\t") print("\t\t4 按成绩降序排序:\t\t") print("\t\t5 按成绩升序排序:\t\t") print("\t\t6 查询:\t\t") print("\t\t7 退出程序\t\t") passdef insert(): print("插入学生信息") name = input("请输入学生姓名:") sex = input("请输入学生性别:") snum = input("请输入学生学号:") chinese = int(input("请输入学生语文成绩:")) math = int(input("请输入学生数学成绩:")) stotal = int(input("请输入学生总成绩:")) db = pymysql.connect(host='localhost', user='root', password='333', database='studentdb') cursor = db.cursor() sql = "insert into st(sname,ssex,snum,chinese,math,stotal) values('%s','%s','%s',%d,%d,%d)"%(name,sex,snum,chinese,math,stotal) try: cursor.execute(sql) db.commit() except: db.rollback() print("error") db.close() passdef delete(): while 1: print("删除学生信息") choose1 = int(input("请输入您的删除方式:1 按姓名 2 按学号: ")) if choose1 == 1: print("按姓名删除") strname = input("请输入删除学生的名字:") db = pymysql.connect(host='localhost', user='root', password='333', database='studentdb') cursor = db.cursor() sql1 = "select *from st where sname='%s'"%(strname) cursor.execute(sql1) if cursor.rowcount>0: try: sql = "DELETE FROM st WHERE sname = '%s'" % (strname) cursor.execute(sql) db.commit() print("删除姓名为%s的学生信息成功" % (strname)) break except: db.rollback() print("error") db.close() else: print("没有这个学生的信息,输入错误") break elif choose1 == 2: print("按学号删除") strnum = input("请输入删除学生的学号:") db = pymysql.connect(host='localhost', user='root', password='333', database='studentdb') cursor = db.cursor() sql1 = "select *from st where snum='%s'"%(strnum) cursor.execute(sql1) if cursor.rowcount>0: sql = "DELETE FROM st WHERE snum = '%s'" % (strnum) try: cursor.execute(sql) db.commit() print("删除学号为%s学生的信息成功" % (strnum)) break except: db.rollback() print("error") db.close() else: print("没有这个学生的信息,输入错误") break else: print("输入错误,重新输入") break pass pass passdef change(): while 1: print("改变学生信息") myname = input("请输入改变学生的名字:") db = pymysql.connect(host='localhost', user='root', password='333', database='studentdb') cursor = db.cursor() sql1 = "select *from st where sname='%s'"%(myname) cursor.execute(sql1) results = cursor.fetchall() name12='0' for row in results: name12 = row[0] if myname == name12: try: sex = input("请输入学生性别:") snum = input("请输入学生学号:") chinese = int(input("请输入学生语文成绩:")) math = int(input("请输入学生数学成绩:")) stotal = int(input("请输入学生总成绩:")) #有问题解决不了 sql3 = "update st set ssex ='%s',snum='%s',chinese=%d,math=%d,stotal=%d where sname='%s'"%(sex,snum,chinese,math,stotal,name12) cursor.execute(sql3) db.commit() print("修改姓名为%s学生的信息成功"%(myname)) break except: db.rollback() print("error") db.close() break else: print("没有这个学生的信息,输入错误") break pass pass passdef sortbyscoredesc(): print("按成绩降序") db = pymysql.connect(host='localhost', user='root', password='333', database='studentdb') cursor = db.cursor() sql = "select * from st order by stotal desc" try: cursor.execute(sql) results = cursor.fetchall() for row in results: name1 = row[0] sex1 = row[1] num1 = row[2] chinses1 = row[3] math2 = row[4] total1 = row[5] # 打印结果 print("学生姓名:%s\t,学生性别:%s\t,学生学号:%s\t,语文成绩:%d\t,数学成绩:%d\t,总成绩:%d\t" % \ (name1, sex1, num1, chinses1, math2, total1)) db.commit() except: db.rollback() print("error") db.close() passdef sortbyscore(): print("按成绩升序排序") db = pymysql.connect(host='localhost', user='root', password='333', database='studentdb') cursor = db.cursor() sql = "select * from st order by stotal asc " try: cursor.execute(sql) results = cursor.fetchall() for row in results: name1 = row[0] sex1 = row[1] num1 = row[2] chinses1 = row[3] math2 = row[4] total1 = row[5] # 打印结果 print("学生姓名:%s\t,学生性别:%s\t,学生学号:%s\t,语文成绩:%d\t,数学成绩:%d\t,总成绩:%d\t" % \ (name1, sex1, num1, chinses1, math2, total1)) db.commit() except: db.rollback() print("error") db.close() passdef select(): print("查询学生信息") db = pymysql.connect(host='localhost',user='root',password='333',database='studentdb') cursor = db.cursor() sql = "select * from st" try: cursor.execute(sql) results = cursor.fetchall() for row in results: name1 = row[0] sex1 = row[1] num1 = row[2] chinses1 = row[3] math2 = row[4] total1 = row[5] # 打印结果 print("学生姓名:%s\t,学生性别:%s\t,学生学号:%s\t,语文成绩:%d\t,数学成绩:%d\t,总成绩:%d\t" % \ (name1,sex1,num1,chinses1,math2,total1)) db.commit() except: db.rollback() print("error") db.close() passdef exitexe(): while 1: print("确定要退出系统吗?退出(y) 不退出(n)") c = input("请输入您的选择aaaa:\t") if c == 'y': exit() elif c == 'n': break else: print("输入有误 重新输入") pass passif __name__ == '__main__': while True: menu() choose = int(input("请输入您的选择:\t")) if choose == 1: insert() elif choose == 2: delete() elif choose == 3: change() elif choose == 4: sortbyscoredesc() elif choose == 5: sortbyscore() elif choose == 6: select() elif choose == 7: exitexe() pass pass7 、运行结果如下:
8 、总结:
在这个案例中,我遇到的问题就是在sql语句和python间,有时候忘记commit,就要测试十几分钟来解决,然后就是如何设置用户输入错误指令的问题,我用了while循环和break pass来解决,总体上这个项目不难,对初学python的人很有用,我仅用了最基本的语法,元组,列表集合基本没用,如果你有更好的想法私信我,下一步我将它开发为一个图形化界面的系统。
感谢各位的阅读,以上就是"怎么用python mysql实现学生成绩管理系统"的内容了,经过本文的学习后,相信大家对怎么用python mysql实现学生成绩管理系统这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
学生
输入
成绩
信息
学号
系统
姓名
就是
数据
管理系统
管理
性别
总成
总成绩
数学
数据库
语文
错误
结果
问题
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
珠海pc软件开发哪家好
普通网络用户面临的网络安全问题
设计数据库集群读写分离并非易事
自考数据库技术文档资料
数据库td
pg数据库userepl设置
软件开发实战pdf
黑客网络安全破局者
拜城软件开发
魔兽世界新手服务器没人
oracle数据库选择语句加法
4g无线网络安全ppt
浅谈校园网络安全建设
软件开发项目工作计划合理性
公安网络安全执法检查规范
手机与网络技术的关系简短
去芯片公司做软件开发怎么样
赛博朋克如何看数据库
延庆区正规软件开发检修
网络安全和漏洞检查
网络安全保险阀
早上steam无法连接服务器
数据通信和网络技术答案
软件开发使用费开票
三拓服务器
甘谷县网络安全工作
opc服务器是由哪三类对象组成
搭建vpn服务器软件
怎么样游戏软件开发
网络安全和漏洞检查