项目教程项目名称: 学生选题管理系统 系统实现:Django + VUE + IView+ axios 运行环境:Python3.9 + MySQL8.x + NodeJS 开发工具:PyCharm + Hbuildex 特别说明:PyCharm 进行项目开发过程中,需要在工具中进行正确的虚拟环境设置,安装需要的依赖包,同时在本地计算机中也需要安装,也就是说在 PyCharm 虚拟环境中安装 Django、PyMySQL ,本地计算机中也需要使用 pip install 依赖名称 的方式安装Django、PyMySQL

1. 项目预览

image.png
系统登陆页
image.png
系统首页
image.png
数据库管理页

2. 项目设计

image.png
系统功能结构
image.png
系统角色
image.png
数据ER图

3. 项目结构

image.png
服务端代码图
image.png
前端代码图

4. 部署运行

4.1 环境依赖

Python, 尽量选择 3.9的版本,测试项目代码在3.9以下的环境中运行会有部分代码不兼容,具体Python安装过程可以参考Python安装配置

NodeJS,这是前端运行所需要的,项目压缩包里包含前端运行所需的依赖模块,所以只需要安装 NodeJS 就可以在终端运行 npm run serve 就可以运行了

MySQL,具体使用版本没有要求,但是必须安装,具体 MySQL 安装过程可以参考 MySQL安装配置

4.2 运行流程

首先,按照 4.1 中的环境要求说明,完成 python、nodejs、mysql 这些软件安装和配置,同时特别提醒,pycharm 运行项目,除了需要在虚拟环境中安装 Django、PyMySQL 这些依赖外,本地最好在安装 python之后使用 pip install 依赖名称 将这些依赖在本地环境中进行安装

第二,复制第5章数据库相关中找到数据库执行的SQL语句,这些SQL语句可以在命令窗口中执行,也可以在Navicat 等图形化管理窗口中执行,执行过程中请移除注释内容,避免对运行造成干扰, 注意:数据库的创建可以复制创建库的语句,之后使用命令语句生成数据库表,最好执行SQL语句中插入的语句将测试数据添加到数据库中

第三,使用代码编辑器打开项目,按照本节4.3、4.4 介绍的内容运行项目,成功运行之后,复制前端运行结果窗口中的路径,在浏览器中打开,输入 账号和密码即可,测试账号和密码存储在 users 表中(账号:admin 密码: admin)

4.3 服务端运行

image.png
如上,使用Pycharm 打开项目后,首先进行虚拟环境的设置,按照上述方式,将所需依赖添加到项目中
image.png
如上,为了方便运行可以按照上述方式进行配置,这样点击运行按钮就可以直接运行,否则需要打开终端,输入 python manage.py runserver 这种方式进行运行运行。

4.4 前端运行

image.png

5. 相关资源

5.1 项目创建

  1. -- 创建项目
  2. django-admin startproject outbreaks
  3. -- 建立应用
  4. python manage.py startapp app
  5. -- 生成数据库同步文件
  6. python manage.py makemigrations
  7. -- 同步数据库
  8. python manage.py migrate

5.2 数据库相关

  1. -- 创建数据
  2. CREATE DATABASE self_student_selectproject DEFAULT CHARACTER SET utf8;
  3. -- 选择数据库
  4. USE self_student_selectproject;
  5. -- 插入数据
  6. INSERT INTO users (id, user_name, pass_word, name, gender, age, type) VALUES (1, 'admin', 'admin', '张三丰', '男', 45, 0);
  7. INSERT INTO users (id, user_name, pass_word, name, gender, age, type) VALUES (3, 'songqingshu', 'songqingshu', '宋青书', '男', 24, 2);
  8. INSERT INTO users (id, user_name, pass_word, name, gender, age, type) VALUES (4, 'zhouzhiruo', 'zhouzhiruo', '周芷若', '女', 23, 2);
  9. INSERT INTO users (id, user_name, pass_word, name, gender, age, type) VALUES (5, 'yangbuhui', 'yangbuhui', '杨不悔', '女', 22, 2);
  10. INSERT INTO users (id, user_name, pass_word, name, gender, age, type) VALUES (6, 'zhaomin', 'zhaomin', '赵敏', '女', 22, 2);
  11. INSERT INTO users (id, user_name, pass_word, name, gender, age, type) VALUES (7, 'xiaozhao', 'xiaozhao', '小昭', '女', 22, 2);
  12. INSERT INTO users (id, user_name, pass_word, name, gender, age, type) VALUES (8, 'zhaoqiang', 'zhaoqiang', '赵强', '男', 26, 2);
  13. INSERT INTO users (id, user_name, pass_word, name, gender, age, type) VALUES (9, 'wangbaobao', 'wangbaobao', '王保保', '男', 28, 2);
  14. INSERT INTO users (id, user_name, pass_word, name, gender, age, type) VALUES (10, 'zhujiuzhen', 'zhujiuzhen', '朱九真', '女', 20, 2);
  15. INSERT INTO users (id, user_name, pass_word, name, gender, age, type) VALUES (11, 'zenganiu', 'zenganiu', '曾阿牛', '男', 25, 2);
  16. INSERT INTO users (id, user_name, pass_word, name, gender, age, type) VALUES (12, 'weibi', 'weibi', '卫壁', '男', 24, 2);
  17. INSERT INTO users (id, user_name, pass_word, name, gender, age, type) VALUES (14, 'songyuanqiao', 'songyuanqiao', '宋远桥', '男', 40, 1);
  18. INSERT INTO users (id, user_name, pass_word, name, gender, age, type) VALUES (15, 'yudaiyan', 'yudaiyan', '俞岱岩', '男', 39, 1);
  19. INSERT INTO users (id, user_name, pass_word, name, gender, age, type) VALUES (16, 'zhangsongxi', 'zhangsongxi', '张松溪', '男', 36, 1);
  20. INSERT INTO users (id, user_name, pass_word, name, gender, age, type) VALUES (17, 'zhangcuishan', 'zhangcuishan', '张翠山', '男', 39, 1);
  21. INSERT INTO teachers (id, reord, job, intro) VALUES (14, '研究生', '高级教师', '优秀教师');
  22. INSERT INTO teachers (id, reord, job, intro) VALUES (15, '研究生', '高级教师', '优秀教师');
  23. INSERT INTO teachers (id, reord, job, intro) VALUES (16, '研究生', '高级教师', '优秀教师');
  24. INSERT INTO teachers (id, reord, job, intro) VALUES (17, '研究生', '特级教师', '优秀教师');
  25. INSERT INTO projects (id, name, intro, comm, put_time, phase, status, expect_person, enroll_person, real_person, teacher_id) VALUES (3, '图书管理', '图书管理', '图书管理', '2022-04-03', 3, 1, 50, 1, 1, 17);
  26. INSERT INTO projects (id, name, intro, comm, put_time, phase, status, expect_person, enroll_person, real_person, teacher_id) VALUES (4, '社区疫情管理', '测试', '测试', '2022-04-04', 3, 0, 50, 4, 1, 17);
  27. INSERT INTO students (id, college, major, real_phase, project_id) VALUES (3, '软件工程', '软件测试', 3, 4);
  28. INSERT INTO students (id, college, major, real_phase, project_id) VALUES (4, '软件工程', '安卓开发', 0, null);
  29. INSERT INTO students (id, college, major, real_phase, project_id) VALUES (5, '软件工程', '软件测试', 0, null);
  30. INSERT INTO students (id, college, major, real_phase, project_id) VALUES (6, '软件工程', '软件开发', 0, null);
  31. INSERT INTO students (id, college, major, real_phase, project_id) VALUES (7, '软件工程', '软件测试', 0, null);
  32. INSERT INTO students (id, college, major, real_phase, project_id) VALUES (8, '软件工程', '安卓开发', 0, null);
  33. INSERT INTO students (id, college, major, real_phase, project_id) VALUES (9, '软件工程', '项目管理', 0, null);
  34. INSERT INTO students (id, college, major, real_phase, project_id) VALUES (10, '软件工程', '网络安全', 0, null);
  35. INSERT INTO students (id, college, major, real_phase, project_id) VALUES (11, '软件工程', '项目管理', 0, null);
  36. INSERT INTO students (id, college, major, real_phase, project_id) VALUES (12, '软件工程', '网络安全', 0, null);
  37. INSERT INTO select_logs (id, create_time, status, comm, project_id, student_id) VALUES (4, '2022-04-04 16:21:35', 1, 'ceshi', 4, 6);
  38. INSERT INTO select_logs (id, create_time, status, comm, project_id, student_id) VALUES (6, '2022-04-07 10:09:27', 2, '同意', 4, 3);
  39. INSERT INTO select_logs (id, create_time, status, comm, project_id, student_id) VALUES (7, '2022-04-09 11:03:19', 0, null, 4, 8);
  40. INSERT INTO phase_logs (id, create_time, no, intro, comm, student_id) VALUES (2, '2022-04-07 10:40:18', 1, '完成系统需求分析,明确开发任务', null, 3);
  41. INSERT INTO phase_logs (id, create_time, no, intro, comm, student_id) VALUES (3, '2022-04-07 10:41:06', 2, '初步完成系统数据库、界面设计,准备项目编码实现', null, 3);
  42. INSERT INTO phase_logs (id, create_time, no, intro, comm, student_id) VALUES (6, '2022-04-07 11:25:40', 3, 'ceso', null, 3);
  43. INSERT INTO review_logs (id, create_time, comm, student_id) VALUES (2, '2022-04-07 15:01:08', '优秀', 3);

5.3 服务端依赖

image.png

5.4 前端依赖

image.png