Python结合MySQL:简易学生管理系统的开发指南
一、编写程序功能:
1.连接 MySQL 数据库,存储和管理学生信息。
2.提供登录功能,用户有三次机会输入正确的用户名和密码登录系统。默认用户名为tata,默认密码为123456。
3.实现添加,查询,更改,删除学生的学生的 ID、姓名、院系、专业、地址、电话号码和邮箱
4.构建一个学生管理系统的主界面,用户登录成功后,可以选择进入添加、修改、查询或删除学生信息的功能模块,或者退出系统。
二、在MySQL上完成数据库编写。
一、创建数据库
create database `students_management`;
二、输入想要的表格数据即可
例如:

根据实际需要情况输入即可,例如:

三 在PyCharm中完成程序编写。
一、导入模块
mysql.connector:用于连接和操作 MySQL 数据库。Error:捕获数据库操作中的异常(如连接失败、SQL 语法错误等)。import mysql.connector
from mysql.connector import Error
二、数据库链接函数
使用mysql-connector-python9.3.0软件包。
(使用阿里云镜像即可快速加载使用:http://mirrors.aliyun.com/pypi/simple/ –trusted-host mirrors.aliyun.com/)
根据自设更改各个名称配置。
def create_connection():
"""创建数据库连接(移除 auth_plugin 参数)"""
try:
return mysql.connector.connect(
host='localhost',
database='你的数据库名称',
user='你的MySQL用户名',
password='你的MySQL实际密码' # 仅保留必要参数
)
except Error as e:
print(f"数据库连接失败: {e}")
return None
三、登录模块
def login():
attempts = 3
while attempts > 0:
username = input("请输入用户名(默认用户名为 tata):")
password = input("请输入密码(默认密码为 123456):")
if username == "tata" and password == "123456":
print("欢迎进入学生管理系统")
return True
else:
print("用户名或密码错误")
attempts -= 1
if attempts > 0:
print(f"你还有{attempts}次机会")
else:
print("次数已用完,请联系管理员!")
return False
四、学生信息操作函数
def student_by_id(student_id):
connection = create_connection()
if not connection:
return False
cursor = connection.cursor()
query = "SELECT * FROM students WHERE student_id = %s"
cursor.execute(query, (student_id,))
result = cursor.fetchone()
cursor.close()
connection.close()
return bool(result)
五、添加信息模块
def add_student():
while True:
try:
student_id = int(input("请输入学生 ID(学号不可重复|输入 0 退出):"))
except ValueError:
print("输入必须为整数,请重新输入。")
continue
if student_id == 0:
break
if student_by_id(student_id):
print("此 ID 已存在,请重新输入。")
else:
# 输入学生信息
student_name = input("请输入学生姓名:")
department = input("请输入学生院系:")
# 校验电话号码长度
phone_number = input("请输入学生电话号码:")
while len(phone_number) != 11:
print("电话号码必须为 11 位,请重新输入。")
phone_number = input("请输入学生电话号码:")
# 插入数据库
connection = create_connection()
cursor = connection.cursor()
query = """
INSERT INTO students (student_id, name, department, major, address, phone_number, email)
VALUES (%s, %s, %s, %s, %s, %s, %s)
"""
try:
cursor.execute(query, (student_id, student_name, department, major, address, phone_number, email))
connection.commit()
print("学生信息添加成功!")
except Error as e:
print(f"添加失败: {e}")
connection.rollback() # 失败时回滚事务
finally:
cursor.close()
connection.close()
六、查询信息模块
def query_student():
while True:
print("0.退出查询信息|1.通过 ID 查询|2.通过姓名查询|3.通过院系查询|4.通过专业查询")
choice = int(input("请输入你要查询的选项:"))
connection = create_connection()
cursor = connection.cursor()
if choice == 1:
student_id = int(input("请输入 ID:"))
query = "SELECT * FROM students WHERE student_id = %s"
cursor.execute(query, (student_id,))
result = cursor.fetchone()
# 打印结果
elif choice == 2:
# 通过姓名查询(类似ID查询,使用FETCHALL获取多条记录)
# 其他查询条件逻辑类似
cursor.close()
connection.close()
七、更改信息模块
def update_student():
while True:
student_id = int(input("请输入学生 ID(输入 0 退出):"))
if not student_by_id(student_id):
print("此 ID 未找到,请检查 ID。")
continue
# 查询原有数据并显示
query = "SELECT * FROM students WHERE student_id = %s"
cursor.execute(query, (student_id,))
result = cursor.fetchone()
print("当前学生信息:", result)
# 循环选择要修改的字段(姓名、地址、电话等)
choice = int(input("0.退出修改|1.修改姓名|2.修改地址|...:"))
if choice == 1:
new_name = input("请输入新姓名:")
query = "UPDATE students SET name = %s WHERE student_id = %s"
cursor.execute(query, (new_name, student_id))
# 其他字段修改逻辑类似
connection.commit() # 提交修改
八、删除信息模块
def delete_student():
while True:
print("0.退出删除|1.按姓名删除|2.按 ID 删除")
choice = int(input("请选择操作:"))
if choice == 2:
student_id = int(input("请输入学生 ID:"))
query = "SELECT * FROM students WHERE student_id = %s"
cursor.execute(query, (student_id,))
result = cursor.fetchone()
if result:
confirm = input(f"确认删除学生 {student_id} 吗?(y/n):")
if confirm.lower() == 'y':
query = "DELETE FROM students WHERE student_id = %s"
cursor.execute(query, (student_id,))
connection.commit()
print("删除成功!")
# 按姓名删除逻辑类似,支持多条记录选择
九、主程序流程
def student_management_system():
if not login():
return
while True:
print("0.退出学生管理系统|1.添加学生|2.修改学生信息|3.查询学生信息|4.删除学生")
try:
choice = int(input("请输入你的选择:"))
except ValueError:
print("输入必须为整数,请重新输入。")
continue
if choice == 0:
print("你已退出学生管理系统,欢迎下次登录")
break
elif choice == 1:
add_student()
elif choice == 2:
update_student()
elif choice == 3:
query_student()
elif choice == 4:
delete_student()
else:
print("无效选择。")
if __name__ == "__main__":
student_management_system()
四、将MySQL与PyCharm中链接。
打开PyCharm,打开【视图】,选择【工具窗口】,选择【数据库】,点击左上角【+】,选择【MySQL】,根据自设配置数据配置即可,例如:

输入完成后 可点击下面链接测试,如果超时可在原URL后直接黏贴?serverTimezone=GMT(无需删掉原有的!)
选择需要的数据库打开即可。例如:

五 、注意事项。
本程序使用了mysql-connector-python9.3.0软件包。若未下载,或版本低于8.0,可能出现以下报错:Authentication plugin 'caching_sha2_password' is not supported。
使用上文推荐的镜像下载即可。
作者:YHHHHHHH94649