python-django-online-exam:基于 DjangoRestFrameWork 的在线考试系统(已停止维护,请关注重构项目)
该项目是一个前后端分离的在线考试系统,fork 自 spring-boot-online-exam,后端由 SpringBoot 改写为 Django-DRF,前端保留 Vue + AntDesign 并针对接口做了修改。支持单选题、多选题、判断题,提供学生、教师、管理员三种角色。原作者已声明本项目不再维护,并使用 Vue3.2 + TypeScript + Element-Plus 新建了 django-vue3.2-online-exam 重构项目。
社区作者 · zZz
它解决什么问题
项目定位:为方便学习 Python 的同学提供一个在线考试系统的示例,主要适配后端,前端对接口做了一些修改。项目 fork 自 spring-boot-online-exam(原项目使用 springboot + vue 实现),后端改为 django-drf。仓库置顶声明“不再维护”:原因是本项目使用的前端技术比较老,作者已创建新项目 django-vue3.2-online-exam(标题中写作 django-vue3-online-exam),使用 Vue3.
2 + TypeScript + Element-Plus 完全重构前端,目前正在重构中,功能并不完善,但会持续开发。
功能介绍:
- 题型支持:单选题、多选题、判断题。
- 角色与权限:
- 学生(student):参加考试和查看我的考试。
- 教师(teacher):拥有学生所有权限,并可以创建/编辑题目、创建/编辑考试。
- 管理员(admin):拥有教师所有权限,并可以管理用户。
软件架构:前后端分离,前端组件化,方便二次开发。
- 后端:DjangoRestFrameWork + CoreApi + JWT 校验,根据不同用户的权限返回给用户不同的数据。
- 前端:Vue + AntDesign,组件化拆分,封装了很多公共组件,方便维护和二次开发。
在线 Demo:http://129.211.88.191 ,账户分别是 admin、teacher、student,密码是 admin123,这是原作者提供的在线 Demo。
功能图示(按正文顺序对应输入图片编号):配图 1 为 API 文档;配图 2、配图 3、配图 4 分别为题目列表、题目创建、题目更新(管理题目);配图 5、配图 6、配图 7 分别为考试列表、考试创建、考试更新(考试管理,作者注明考试更新还有点小 bug、开发中);配图 8、配图 9 为参加考试步骤,在“考试列表”模块点击自己想参加的考试卡片即可;配图 10 为考试记录查看。
适用对象:希望学习 Python/Django 后端接口开发、需要在线考试系统二次开发示例的学生与开发者。注意本项目已停止维护,生产使用前建议评估新项目 django-vue3.2-online-exam。
— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。
安装 / 开始使用
以下为来源 README 中的完整使用教程,按原文顺序整理:
一、准备环境
- 下载代码:
git clone [email protected]:xingxingzaixian/python-django-online-exam.git- 安装 MySQL:安装 mysql 的步骤 README 中省略(作者说明网上教程很多)。安装好 mysql 后,执行 doc/sql/exam.sql 文件导入数据库信息。
- 使用 Pip 安装 Pipenv 包。
二、启动后端
- 进入 backend\exam 目录。
- 执行 Pipenv install。注意项目使用的是 python3.8,如果使用其他版本,请将 Pipfile 文件中的版本号改一下。
- 执行完安装命令后,再执行 Pipenv run dev,即可启动后端。
- 在浏览器端访问 http://localhost:9527/docs 即可看到后端的 API 界面(对应配图 1:API 文档)。
三、启动前端
步骤 1 · 进入前端代码路径:
cd frontend/exam/步骤 2 · 安装依赖:
yarn install步骤 3 · 启动前端:
yarn run serve四、部署完毕,查看效果 打开 http://localhost:8000 或者 http://本机ip:8000 即可查看演示效果。
五、了解功能入口(来自功能图示章节)
- 管理题目:题目列表(配图 2)、题目创建(配图 3)、题目更新(配图 4)。
- 考试管理:考试列表(配图 5)、考试创建(配图 6)、考试更新(配图 7,作者注明还有点小 bug、开发中)。
- 我的考试:参加考试——在“考试列表”模块点击自己想参加的考试卡片即可(配图 8、配图 9);考试记录查看(配图 10)。
常见问题与注意事项:
- 本项目已不再维护,前端技术较老,仅供学习参考。
Python 版本非 3.8 时需要修改 Pipfile 中的版本号。
- MySQL 需自行安装并先导入 doc/sql/exam.sql,否则后端无法正常读取数据。
- 考试更新功能仍存在小 bug,处于开发中状态。
- 需要持续维护的版本请关注作者的重构项目 django-vue3.2-online-exam(Vue3.2 + TypeScript + Element-Plus 完全重构前端,标题中写作 django-vue3-online-exam),该项目目前重构中、功能并不完善。