flask+mysql做的学生信息管理系统

15 阅读4分钟

学生信息管理系统

基于 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'  # 使用强随机字符串

使用说明

学生用户

  1. 注册账户

    • 访问注册页面
    • 填写用户名、密码、真实姓名等必填信息
    • 选择班级(可选)
    • 提交注册
  2. 登录系统

    • 使用注册的用户名和密码登录
    • 登录后可以查看和编辑自己的信息

管理员

  1. 登录系统

    • 使用默认账户登录(admin / admin123)
    • 登录后可以看到"学生管理"和"班级管理"菜单
  2. 管理学生

    • 在"学生管理"页面可以查看所有学生
    • 使用搜索框和班级筛选功能查找学生
    • 点击"添加学生"按钮添加新学生
    • 点击"编辑"按钮修改学生信息
    • 点击"删除"按钮删除学生(需确认)
  3. 管理班级

    • 在"班级管理"页面可以查看所有班级
    • 点击"添加班级"添加新班级
    • 点击"编辑"按钮修改班级信息
    • 点击"删除"按钮删除班级(需确保班级下没有学生)

注意事项

  1. 首次部署:请务必运行 init_admin.py 脚本初始化管理员账户
  2. 数据库密码:请根据实际情况修改 app.pyinit_admin.py 中的数据库密码
  3. 安全性:生产环境请修改 secret_key,使用强密码
  4. 数据备份:定期备份数据库,防止数据丢失
  5. 删除操作:删除班级前需确保该班级下没有学生,否则无法删除

常见问题

1. 数据库连接失败

  • 检查MySQL服务是否启动
  • 确认数据库配置信息是否正确
  • 确认数据库用户是否有足够权限

2. 管理员无法登录

  • 运行 init_admin.py 脚本重新初始化管理员账户
  • 确认密码是否正确(默认:admin123)

3. 页面样式显示异常

  • 确认 static 目录结构正确
  • 检查浏览器控制台是否有错误信息
  • 清除浏览器缓存后重试

开发说明

修改数据库配置

app.py 文件中修改 DB_CONFIG 字典。

添加新功能

  1. app.py 中添加新的路由处理函数

  2. templates 目录中创建对应的HTML模板

  3. 如需新样式,在 static/css/style.css 中添加

  4. 如需新脚本,在 static/js/main.js 中添加

登录.png

管理员-班级列表.png

管理员-编辑班级.png

管理员-编辑学生.png

管理员-首页.png

管理员-添加学生.png

管理员-学生列表.png

学生-编辑.png

学生首页.png

注册.png