尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Python+MySQL实现学生心理健康测评分数数据保存(完整源码+详细讲解)

Python+MySQL实现学生心理健康测评分数数据保存(完整源码+详细讲解) 一、项目简介在校园心理健康管理系统开发中学生测评数据的持久化存储是核心基础功能。本文将通过Python MySQL实现学生心理健康测评结果的录入、数据库保存功能。本项目实现效果控制台手动录入学生姓名、学号、测评分数分数合法性校验仅支持整数分数错误输入提示重输自动将测评数据插入MySQL数据库持久化保存完善的异常捕获避免数据库连接、数据插入报错导致程序崩溃代码简洁轻量、无冗余可直接嵌入校园测评系统、后台管理项目中使用。二、开发环境准备1、环境依赖Python 3.7MySQL 5.7 / 8.0mysql-connector-python 数据库连接库2、安装依赖库执行pip命令安装MySQL连接第三方库pip install mysql-connector-python3、数据库与数据表创建需提前在MySQL中创建对应数据库和数据表否则程序会报错。执行以下SQL语句# 创建数据库 CREATE DATABASE IF NOT EXISTS gaygay DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 使用数据库 USE gaygay; # 创建学生心理健康测评表 CREATE TABLE IF NOT EXISTS mental_health_assessment ( id INT PRIMARY KEY AUTO_INCREMENT COMMENT 主键ID, student_name VARCHAR(50) NOT NULL COMMENT 学生姓名, student_id VARCHAR(30) NOT NULL UNIQUE COMMENT 学生学号, score INT NOT NULL COMMENT 心理健康测评分数, create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 数据录入时间 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT学生心理健康测评结果表;字段说明新增自增主键id、数据录入时间方便后续数据查询、统计与管理utf8mb4编码兼容所有文字、表情符号。三、完整功能代码import mysql.connector from mysql.connector import Error # 数据库连接配置信息可根据自己的数据库修改 DB_CONFIG { host: localhost, database: gaygay, user: root, password: root } def save_result(student_name, student_id, score): 保存学生心理健康测评结果到MySQL数据库 :param student_name: 学生姓名 :param student_id: 学生学号 :param score: 测评分数 :return: None # 初始化连接对象避免未定义报错 connection None try: # 建立数据库连接 connection mysql.connector.connect(**DB_CONFIG) if connection.is_connected(): cursor connection.cursor() # 预编译SQL语句防止SQL注入 insert_query INSERT INTO mental_health_assessment (student_name, student_id, score) VALUES (%s, %s, %s) data (student_name, student_id, score) # 执行插入操作 cursor.execute(insert_query, data) # 提交事务MySQL必须提交才会真正写入数据 connection.commit() print(✅ 学生心理健康测评结果保存成功) except Error as e: print(f❌ 保存数据出错: {e}) finally: # 关闭游标和数据库连接释放资源 if connection and connection.is_connected(): cursor.close() connection.close() print( 数据库连接已关闭) if __name__ __main__: # 控制台录入学生信息 student_name input(请输入学生姓名: ) student_id input(请输入学生学号: ) # 分数合法性循环校验确保输入为整数 while True: try: score int(input(请输入心理健康测评分数: )) break except ValueError: print(❌ 输入格式错误分数必须为整数请重新输入。) # 调用函数保存数据 save_result(student_name, student_id, score)四、代码详细解析1、数据库配置模块通过字典统一管理数据库地址、库名、账号密码集中配置、方便修改后续更换数据库、修改密码无需多处改动代码。2、数据保存核心函数 save_result异常捕获机制捕获数据库连接失败、SQL语法错误、数据格式错误等所有异常打印报错信息避免程序闪退。预编译SQL使用%s占位符传参而非字符串拼接彻底防止SQL注入漏洞安全性更高。事务提交MySQL默认事务手动提交必须执行commit()数据才会真正写入数据库。资源释放finally模块强制关闭游标和数据库连接避免内存占用、数据库连接泄露。3、前端输入校验模块使用while死循环异常捕获强制校验分数为整数若用户输入字母、符号、小数会提示错误并重新输入保证存入数据库的数据格式合法。五、运行测试效果1、控制台运行日志请输入学生姓名: 张三 请输入学生学号: 2026001 请输入心理健康测评分数: 88 ✅ 学生心理健康测评结果保存成功 数据库连接已关闭2、错误输入测试请输入学生姓名: 李四 请输入学生学号: 2026002 请输入心理健康测评分数: abc ❌ 输入格式错误分数必须为整数请重新输入。 请输入心理健康测评分数: 92 ✅ 学生心理健康测评结果保存成功 数据库连接已关闭3、数据库查询验证执行SQL查询可看到数据已成功入库且自动生成录入时间SELECT * FROM mental_health_assessment;六、常见报错与解决方案踩坑总结1、Access denied for user rootlocalhost原因数据库账号密码配置错误 解决方案修改DB_CONFIG中的user和password为自己的MySQL账号密码2、Unknown database gaygay原因未创建对应数据库 解决方案执行上文提供的建库SQL语句创建gaygay数据库3、Table doesnt exist原因数据表未创建 解决方案执行建表SQL生成mental_health_assessment数据表4、变量未定义报错优化点代码中提前初始化connection变量解决极端情况下连接未创建、关闭连接报错的问题。七、扩展优化方向参数配置化将数据库配置写入config.ini配置文件脱离代码硬编码分数区间校验新增分数范围判断如0-100分杜绝无效分数入库重复学号校验查询学号是否已存在避免重复录入同一学生数据日志优化替换print打印使用logging模块记录系统日志方便运维排查问题封装接口基于FastAPI/Flask封装成后端接口适配前端页面提交数据八、总结本文实现了Python对接MySQL完成学生心理健康测评数据的持久化存储代码具备高容错、高安全、易扩展的特点适配校园测评系统、学生管理系统等项目开发。核心掌握了MySQL连接、预编译SQL、事务提交、异常处理、数据校验等Python数据库开发核心知识点适合Python初学者入门实战。
返回列表