学生信息管理系统
基于 Flask + MySQL8 开发的学生信息管理系统,支持学生注册登录、信息管理以及管理员对学生和班级的完整管理功能。
系统功能
学生功能
- 用户注册:学生可以注册账户,填写个人信息
- 用户登录:使用注册的用户名和密码登录系统
- 个人信息查看:登录后可以查看自己的详细信息
- 个人信息编辑:可以编辑自己的个人信息(不能修改用户名和密码)
管理员功能
- 默认登录:使用默认管理员账户登录(用户名:admin,密码:admin123)
- 学生管理:
- 查看所有学生信息列表
- 按班级筛选学生
- 按姓名、用户名、学号搜索学生
- 添加新学生
- 编辑学生信息(包括修改用户名和密码)
- 删除学生
- 班级管理:
- 查看所有班级列表(显示每个班级的学生人数)
- 添加新班级
- 编辑班级信息
- 删除班级(需确保班级下没有学生)
技术栈
- 后端框架:Flask 2.3.3
- 数据库:MySQL 8.0
- 数据库驱动:PyMySQL 1.1.0
- 密码加密:Werkzeug
- 前端:HTML + CSS + JavaScript(本地文件,无外部依赖)
项目结构
studentsman/
├── app.py # Flask应用主文件
├── requirements.txt # Python依赖包
├── database.sql # 数据库结构SQL文件
├── init_admin.py # 管理员账户初始化脚本
├── README.md # 项目说明文档
├── templates/ # HTML模板目录
│ ├── base.html # 基础模板
│ ├── login.html # 登录页面
│ ├── register.html # 注册页面
│ ├── student_list.html # 学生列表页面
│ ├── student_edit.html # 学生编辑/添加页面
│ ├── class_list.html # 班级列表页面
│ └── class_edit.html # 班级编辑/添加页面
└── static/ # 静态文件目录
├── css/
│ └── style.css # 样式文件
└── js/
└── main.js # JavaScript文件
部署方式
1. 环境要求
- Python 3.7+
- MySQL 8.0+
- pip(Python包管理器)
2. 安装Python依赖
pip install -r requirements.txt
3. 配置数据库
3.1 创建数据库
使用MySQL客户端或命令行工具执行 database.sql 文件:
mysql -u root -p < database.sql
或者手动执行SQL语句:
CREATE DATABASE IF NOT EXISTS students_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE students_db;
-- 然后执行database.sql中的其他SQL语句
3.2 修改数据库配置
编辑 app.py 文件,修改数据库连接配置:
DB_CONFIG = {
'host': 'localhost', # 数据库主机地址
'user': 'root', # 数据库用户名
'password': 'root', # 数据库密码
'database': 'students_db',
'charset': 'utf8mb4',
'cursorclass': pymysql.cursors.DictCursor
}
同时修改 init_admin.py 中的数据库配置(与app.py保持一致)。
4. 初始化管理员账户
运行初始化脚本创建管理员账户:
python init_admin.py
这将创建默认管理员账户:
- 用户名:
admin - 密码:
admin123
5. 启动应用
python app.py
应用将在 http://0.0.0.0:5000 启动,可以通过浏览器访问 http://localhost:5000 使用系统。
6. 生产环境部署建议
对于生产环境,建议使用以下方式部署:
使用 Gunicorn
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app
使用 Nginx 作为反向代理
配置Nginx反向代理到Flask应用,提供更好的性能和安全性。
修改密钥
在生产环境中,请修改 app.py 中的 secret_key:
app.secret_key = 'your-secret-key-here' # 使用强随机字符串
使用说明
学生用户
-
注册账户:
- 访问注册页面
- 填写用户名、密码、真实姓名等必填信息
- 选择班级(可选)
- 提交注册
-
登录系统:
- 使用注册的用户名和密码登录
- 登录后可以查看和编辑自己的信息
管理员
-
登录系统:
- 使用默认账户登录(admin / admin123)
- 登录后可以看到"学生管理"和"班级管理"菜单
-
管理学生:
- 在"学生管理"页面可以查看所有学生
- 使用搜索框和班级筛选功能查找学生
- 点击"添加学生"按钮添加新学生
- 点击"编辑"按钮修改学生信息
- 点击"删除"按钮删除学生(需确认)
-
管理班级:
- 在"班级管理"页面可以查看所有班级
- 点击"添加班级"添加新班级
- 点击"编辑"按钮修改班级信息
- 点击"删除"按钮删除班级(需确保班级下没有学生)
注意事项
- 首次部署:请务必运行
init_admin.py脚本初始化管理员账户 - 数据库密码:请根据实际情况修改
app.py和init_admin.py中的数据库密码 - 安全性:生产环境请修改
secret_key,使用强密码 - 数据备份:定期备份数据库,防止数据丢失
- 删除操作:删除班级前需确保该班级下没有学生,否则无法删除
常见问题
1. 数据库连接失败
- 检查MySQL服务是否启动
- 确认数据库配置信息是否正确
- 确认数据库用户是否有足够权限
2. 管理员无法登录
- 运行
init_admin.py脚本重新初始化管理员账户 - 确认密码是否正确(默认:admin123)
3. 页面样式显示异常
- 确认
static目录结构正确 - 检查浏览器控制台是否有错误信息
- 清除浏览器缓存后重试
开发说明
修改数据库配置
在 app.py 文件中修改 DB_CONFIG 字典。
添加新功能
-
在
app.py中添加新的路由处理函数 -
在
templates目录中创建对应的HTML模板 -
如需新样式,在
static/css/style.css中添加 -
如需新脚本,在
static/js/main.js中添加