目录
1、项目所需模块
2、学生管理系统的主要功能
3、首先创建数据库
4、防止数据库断开操作
5、菜单
6、编写主函数
7、添加学生信息
8、删除学生信息
9、修改学生信息
10、查看学生信息
11、展示所有学生信息
12、最后就是调用主函数
1、项目所需模块
编写这个学生管理系统需要使用pymysql这个库去连接数据库
2、学生管理系统的主要功能
这个学生管理系统我做的很简陋,只做了增删改查和展示所有学生信息5个模块,大家可以做得更详细一点增加其他的功能模块,在这里仅供大家参考,希望能给刚开始学习python的同学一点参考文章来源:https://www.toymoban.com/news/detail-488379.html
3、首先创建数据库
import pymysql
#定义数据库连接参数
host = '127.0.0.1'
port = 3306
db = 'student'
user = 'root'
password = 'root'
#创建连接
con = pymysql.connect(host=host,
port=port,
db=db,
user=user,
password=password)
#创建游标对象
cur = con.cursor()
#编写sql语句
sql = """
create table if not exists students(
ids varchar(20) not null primary key,
name varchar(30) not null,
age int(2),
gender varchar(10) not null,
classes varchar(200) not null
)
"""
try:
#执行sql语句
cur.execute(sql)
print('创建成功')
except Exception as e:
print(e)
print('创表失败')
finally:
#关闭连接
con.close()
4、防止数据库断开操作
#数据库自动检测是否断开并自动连接
def select_db():
# 检查连接是否断开,如果断开就进行重连
con.ping(reconnect=True)
cur.execute(sql)
# 使用 fetchall() 获取查询结果
data = cur.fetchall()
return data
5、菜单
#菜单
def menu():
print("1.增加学生信息")
print("2.删除学生信息")
print("3.查找学生信息")
print("4.修改学生信息")
print("5.展示所有学生信息")
print("0.退出系统")
choose = input("请输入你的操作:")
return choose
6、编写主函数
#定义主函数
def main():
print("+----------------------------------------+")
print("| 欢迎进入学生管理系统 |")
print("+----------------------------------------+")
while True:
choose = menu()
#增加学生信息
if choose == '1':
add()
#删除学生信息
elif choose == '2':
delete()
#查找学生信息
elif choose == '3':
fund()
#改变学生信息
elif choose == '4':
amend()
#展示所有学生信息
elif choose == '5':
show()
elif choose == '0':
print("你已退出学生管理系统!!!!")
#非法输入
else:
print("输入错误,请冲向输入!!")
7、添加学生信息
#添加学生信息
def add():
select_db()
#创建游标对象
cur = con.cursor(pymysql.cursors.SSCursor)
print("增加学生信息开始")
while True:
try:
ids = input("请输入学号:")
name = input("请输入学生姓名:")
age = input("亲输入学生年龄")
gender = input("请输入学生性别:")
classes = input("请输入学生班级:")
values = [ids, name, age, gender, classes]
if gender not in ("男", "女"):
print("输入错误,请输入男或女!")
# 执行sql,将数据录入数据库
sql = 'insert into students(ids,name,age,gender,classes) values(%s,%s,%s,%s,%s)'
cur.execute(sql, values)
if True:
# 提交事务
con.commit()
print('添加学生信息成功')
answer = input('是否继续添加学生信息:“yes"or"no"\n')
if answer != 'yes':
break
else:
continue
except Exception as e:
print(e)
# 数据回滚,保护数据库
con.rollback()
print('添加学生信息失败')
finally:
print("[增加学生信息结束]")
con.close()
8、删除学生信息
#删除学生信息
def delete():
select_db()
# 创建游标对象
cur = con.cursor(pymysql.cursors.SSCursor)
print("删除学生信息开始")
while True:
try:
ids = input("请输入你要删除的学生学号:")
sql = 'delete from students where ids=%s'
con.commit()
# 执行sql将数据从数据库中删除
cur.execute(sql, ids)
if True:
# 提交事务
con.commit()
print('删除学生信息成功')
answer = input('是否继续删除学生信息:“yes"or"no"')
if answer != 'yes':
break
else:
continue
except:
# 数据回滚,保护数据库
con.rollback()
print('删除学生信息失败')
finally:
print("删除学生信息结束")
con.close()
9、修改学生信息
#修改学生信息
def amend():
select_db()
# 创建游标对象
cur = con.cursor(pymysql.cursors.SSCursor)
print("修改学生信息开始")
while True:
ids = input("请输入你要修改信息学生的学号:")
if ids != '':
name = input("请输入你要修改信息学生的姓名:")
age = input("请输入你要修改信息学生的年龄:")
gender = input("请输入你要修改信息学生的性别:")
classes = input("请输入你要修改信息学生的班级:")
try:
sql = f'update students set ids={ids},name={name},age={age},gender={gender},classes={classes}'
#执行sql,修改数据库数据
cur.execute(sql)
con.commit()
except:
print("修改失败")
con.rollback()
finally:
print("修改学生信息结束")
answer = input('是否继续修改学生信息:”yes“or"no"')
if answer != 'yes':
break
else:
continue
else:
print('输入错误请重新输入')
continue
con.close()
10、查看学生信息
#查找学生信息
def fund():
select_db()
# 创建游标对象
cur = con.cursor(pymysql.cursors.SSCursor)
print("查找学生信息开始")
while True:
try:
mode = input('按学号查找请输入:1,按姓名查找请输入:2')
if mode =='1':
ids = input("请输入你需要查找到学生学号:")
sql = 'select from students where ids=%s'
cur.execute(sql, ids)
con.commit()
print(cur.fetchall())
answer = input('是否继续查找学生信息:”yes“or”no“')
if answer != 'yes':
break
else:
continue
elif mode == '2':
name = input("请输入你需要查找的学生姓名:")
sql = 'select from students where name=%s'
cur.execute(sql, name)
con.commit()
print(cur.fetchall())
answer = input('是否继续查找学生信息:”yes“or”no“')
if answer != 'yes':
break
else:
continue
else:
print("你的输入有误,请重新输入")
continue
except:
# 数据回滚,保护数据库
con.rollback()
finally:
print("查询学生信息结束")
con.close()
11、展示所有学生信息
def show():
select_db()
# 创建游标对象
cur = con.cursor(pymysql.cursors.SSCursor)
sql = f'select * from students'
cur.execute(sql)
all = cur.fetchall()
# print(len(all), type(all))
format_title = '{:^6}\t{:^12}\t{:^8}\t{:^10}'
print(format_title.format('ID', '姓名', '性别', '年龄'))
format_data = '{:^6}\t{:^12}\t{:^8}\t{:^10}'
for record in all:
print(format_data.format(record[0], record[1], record[2], record[3]))
con.close()
12、最后就是调用主函数
if __name__ == '__main__':
main()
我把所有代码都放在这里了,里面也都有详细注释,大家应该都能看懂,希望我的这篇发文能够帮助那些还在学习python的同学,这只是一个很基础的小项目,希望大家能都自己都能跑一下代码感受一下,今天的分享就到此为止了,谢谢大家。文章来源地址https://www.toymoban.com/news/detail-488379.html
到了这里,关于python+mysql的学生管理系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!