基于 Flask 框架的学校信息管理系统,技术栈flask+MySQL+boostrap

本系统是一个基于 Flask 框架的学校信息管理系统(Beta 版),采用 SQLite 数据库,主要面向学生信息、课程成绩及用户权限的管理。系统功能可归纳为以下四个核心模块:

功能点 1:用户认证与密码管理

系统提供登录和密码修改功能。用户通过学号(ID)和密码登录,密码采用 MD5 加密存储,确保安全性。登录时,后端查询 user 表验证身份,若成功则跳转至主页,否则返回错误提示。密码修改页面要求用户输入原密码、新密码及确认密码,若两次新密码一致且原密码正确,则更新密码并跳转回登录页。该模块保障了系统访问的合法性与用户账户的自主管理。

功能点 2:学生信息管理(增删改查)

系统支持对学生基本信息的完整 CRUD 操作。

添加:通过 /addUser 页面填写学号、姓名、院系、身份证号、性别,提交后自动向 userinfo 表插入记录,同时向 user 表插入默认密码(学号 MD5 值)并赋予"学生"角色。

查看:/listuserinfo 展示所有学生列表,每行提供"详情"链接,可跳转至单条信息编辑页面。

更新:在详情页面修改信息后提交,更新 userinfo 表中对应字段。

删除:列表页提供"删除"按钮,确认后同步删除 userinfo、course 和 user 三张表中的相关记录,实现账号与数据的彻底清除。

该模块涵盖了学生档案的全生命周期管理。

功能点 3:课程管理(选课、退课、删除课程)

系统允许为每位学生添加课程成绩记录,并支持多维度的课程操作。

添加课程:通过 /addcoursepage 填写学生 ID、课程编号、课程名、教师名、分数,插入 course 表,关联学生与课程。

查看所有课程:/listcourse 以左连接方式展示学生信息与课程信息的联合视图,清晰呈现每个学生的选课明细。

退课:针对某学生的特定课程记录,提供"退课"链接,删除该学生的该条选课记录。

删除课程:针对某门课程(按课程编号),提供"删除课程"链接,不仅删除该课程的所有选课记录,也一并清除所有学生对应的该课程成绩,实现课程层面的批量清理。

功能点 4:成绩统计分析与数据导出

系统提供成绩分析页面 /analize,通过 SQL 聚合查询计算每位学生(仅角色为"学生")的总分、选课门数、平均分,并按平均分降序排列,生成直观的成绩排名表。页面内置 JavaScript 导出功能,可将排名表格一键导出为 Excel 文件(支持多 Sheet 导出),便于教师进行成绩存档、打印或进一步处理。该模块为教学评估提供了数据支撑。

相关推荐
冰暮流星1 小时前
MySQL 流程函数详解
数据库·sql·mysql
Darling噜啦啦1 小时前
从零搭建单词管理系统:Next.js + Supabase + Drizzle ORM 全栈实战
数据库·orm·next.js
数据狐(Datafox)1 小时前
1688商品详情API技术解析与落地应用(含标准 JSON 示例)
java·数据库·json
阿黎梨梨1 小时前
搭建一个单词管理后台:Next.js + Supabase + Drizzle
数据库·next.js
增量星球2 小时前
embedding专题之向量化革命:从关键词到语义检索
数据库·embedding
夕除2 小时前
redis--008
java·jvm·数据库
烬羽2 小时前
一个博客系统,为什么要拆成 6 张表?
数据库·mysql
程序员-Benothing2 小时前
MySQL 中的日志类型有哪些?binlog、redo log 和 undo log 的作用和区别是什么?
数据库·mysql
XuCoder2 小时前
你写的每条 SQL 都没加过锁,可 MySQL 凭什么不怕两个事务打架?
数据库·后端