django+mysql8做的学生信息管理系统

19 阅读5分钟

学生信息管理系统

项目简介

这是一个基于Django框架和MySQL 8数据库开发的学生信息管理系统。系统提供了完整的学生信息管理功能,包括学生注册登录、信息查看编辑,以及管理员对学生和班级的全面管理功能。

技术栈

  • 后端框架: Django 4.2+
  • 数据库: MySQL 8.0
  • 前端技术: HTML5, CSS3, JavaScript
  • Python版本: Python 3.8+

核心功能

学生端功能

  1. 用户注册: 学生可以自主注册账号,填写个人信息
  2. 用户登录: 使用用户名和密码登录系统
  3. 查看信息: 查看自己的完整个人信息
  4. 编辑信息: 编辑和更新自己的个人信息(学号不可修改)

管理员功能

  1. 学生管理

    • 查看所有学生列表
    • 按班级筛选学生
    • 搜索学生(支持学号、姓名、电话搜索)
    • 添加新学生
    • 编辑学生信息
    • 删除学生
  2. 班级管理

    • 查看所有班级列表
    • 添加新班级
    • 编辑班级信息
    • 删除班级
  3. 数据统计

    • 查看学生总数
    • 查看班级总数
    • 快捷操作面板

项目特点

1. 权限分离设计

系统采用了严格的权限分离机制:

  • 学生用户只能查看和编辑自己的信息
  • 管理员拥有完整的系统管理权限
  • 登录后根据用户类型自动跳转到对应的界面

2. 统一的界面设计

所有页面采用统一的设计风格:

  • 配色方案: 使用紫色渐变主题色(#667eea - #764ba2)
  • 布局结构: 完整的Header导航栏 + 主内容区域 + Footer页脚
  • 响应式设计: 支持PC端和移动端自适应
  • 一致的表单样式: 所有表单页面保持统一的视觉风格

3. 独立的页面结构

  • 列表页面和编辑页面完全分离
  • 添加、编辑功能使用独立页面,不与列表页面混合
  • 清晰的页面导航和面包屑路径

4. 本地静态资源

  • 所有CSS和JavaScript文件都存储在本地
  • 不依赖任何在线CDN资源
  • 确保系统可以在离线环境下正常运行

5. 完整的中文支持

  • 所有界面文案使用中文
  • 数据库字段注释使用中文
  • 错误提示和成功消息使用中文

项目结构

djangostus/
├── student_system/          # Django项目配置目录
│   ├── __init__.py
│   ├── settings.py         # 项目配置文件
│   ├── urls.py             # 主URL配置
│   ├── wsgi.py
│   └── asgi.py
├── students/               # 学生管理应用
│   ├── __init__.py
│   ├── models.py          # 数据模型(学生、班级)
│   ├── views.py           # 视图函数
│   ├── urls.py            # 应用URL配置
│   ├── admin.py           # 后台管理配置
│   └── apps.py
├── templates/             # HTML模板目录
│   ├── base.html         # 基础模板
│   ├── login.html        # 登录页面
│   ├── register.html     # 注册页面
│   ├── student/          # 学生端模板
│   │   ├── dashboard.html
│   │   └── edit.html
│   └── admin/            # 管理员端模板
│       ├── dashboard.html
│       ├── student_list.html
│       ├── student_add.html
│       ├── student_edit.html
│       ├── class_list.html
│       ├── class_add.html
│       └── class_edit.html
├── static/               # 静态资源目录
│   ├── css/
│   │   └── style.css    # 主样式文件
│   └── js/
│       └── main.js      # 主JavaScript文件
├── init_database.sql    # 数据库初始化SQL脚本
├── manage.py            # Django管理脚本
└── README.md            # 项目文档

安装部署

1. 环境准备

确保已安装以下软件:

  • Python 3.8+
  • MySQL 8.0
  • pip包管理器

2. 安装依赖

pip install django==4.2
pip install pymysql

注意:Windows系统推荐使用pymysql,已在项目中配置好,无需额外设置。

3. 数据库配置

3.1 导入SQL脚本

使用MySQL客户端或命令行导入数据库初始化脚本:

mysql -u root -p < init_database.sql

或者在MySQL命令行中执行:

source /path/to/init_database.sql
3.2 修改数据库连接配置

编辑student_system/settings.py文件,修改数据库连接信息:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'student_info_system',
        'USER': 'root',
        'PASSWORD': '你的MySQL密码',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

4. 运行Django迁移

python manage.py migrate

5. 创建管理员账号

python manage.py createsuperuser

按提示输入管理员用户名、邮箱和密码。建议使用:

  • 用户名: admin
  • 密码: admin123(或其他安全密码)

6. 启动开发服务器

python manage.py runserver

访问 http://127.0.0.1:8000 即可使用系统。

使用说明

管理员登录

  1. 访问 http://127.0.0.1:8000/login/
  2. 使用创建的管理员账号登录
  3. 登录后自动跳转到管理员控制台

学生注册和登录

  1. 访问 http://127.0.0.1:8000/register/
  2. 填写注册信息(学号、姓名、性别等)
  3. 注册成功后使用用户名和密码登录
  4. 登录后可以查看和编辑自己的信息

数据库设计

班级表 (class)

字段名类型说明
idBIGINT主键,自增
class_nameVARCHAR(50)班级名称,唯一
gradeVARCHAR(20)年级
descriptionTEXT班级描述
created_atDATETIME创建时间
updated_atDATETIME更新时间

学生表 (student)

字段名类型说明
idBIGINT主键,自增
user_idINT关联用户ID,唯一
student_idVARCHAR(20)学号,唯一
nameVARCHAR(50)姓名
genderVARCHAR(1)性别(M/F)
birth_dateDATE出生日期
class_info_idBIGINT班级ID,外键
phoneVARCHAR(20)联系电话
emailVARCHAR(254)邮箱
addressTEXT家庭住址
created_atDATETIME创建时间
updated_atDATETIME更新时间

代码特点

1. MVC架构清晰

  • Models: 使用Django ORM定义数据模型,包含完整的字段验证和关系定义
  • Views: 视图函数职责单一,逻辑清晰,易于维护
  • Templates: 模板继承结构合理,代码复用性高

2. 安全性考虑

  • 使用Django内置的用户认证系统
  • CSRF保护机制
  • 密码加密存储
  • SQL注入防护(使用ORM)
  • XSS攻击防护(模板自动转义)

3. 用户体验优化

  • 友好的错误提示信息
  • 表单验证反馈
  • 操作成功提示
  • 删除操作二次确认
  • 响应式设计适配移动端

4. 代码规范

  • 遵循PEP 8 Python编码规范
  • 函数和类都有清晰的文档字符串
  • 变量命名语义化
  • 代码注释适当

功能截图说明

登录页面

  • 简洁的登录表单
  • 支持跳转到注册页面

学生注册页面

  • 完整的信息填写表单
  • 实时表单验证
  • 班级下拉选择

学生端界面

  • 个人信息展示卡片
  • 信息编辑页面
  • 统一的导航栏

管理员端界面

  • 数据统计仪表板

  • 学生列表(支持筛选和搜索)

  • 班级管理列表

  • 添加/编辑表单页面

登录.png

管理员-班级列表.png

管理员-编辑班级.png

管理员-编辑学生.png

管理员-首页.png

管理员-添加学生.png

管理员-学生列表.png

学生-编辑.png

学生首页.png

注册.png