返回目录
开源项目设计创作类新手

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 重构项目。

0 次阅读2026/09/15 发布
python-django-online-exam:基于 DjangoRestFrameWork 的在线考试系统(已停止维护,请关注重构项目) 来源图片

社区作者 · 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 完全重构前端,目前正在重构中,功能并不完善,但会持续开发。

功能介绍:

  1. 题型支持:单选题、多选题、判断题。
  1. 角色与权限:
  • 学生(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 中的完整使用教程,按原文顺序整理:

一、准备环境

  1. 下载代码:
命令
git clone [email protected]:xingxingzaixian/python-django-online-exam.git
  1. 安装 MySQL:安装 mysql 的步骤 README 中省略(作者说明网上教程很多)。安装好 mysql 后,执行 doc/sql/exam.sql 文件导入数据库信息。
  1. 使用 Pip 安装 Pipenv 包。

二、启动后端

  1. 进入 backend\exam 目录。
  1. 执行 Pipenv install。注意项目使用的是 python3.8,如果使用其他版本,请将 Pipfile 文件中的版本号改一下。
  1. 执行完安装命令后,再执行 Pipenv run dev,即可启动后端。
  1. 在浏览器端访问 http://localhost:9527/docs 即可看到后端的 API 界面(对应配图 1:API 文档)。

三、启动前端

步骤 1 · 进入前端代码路径:

可复制命令
cd frontend/exam/

步骤 2 · 安装依赖:

可复制命令
yarn install

步骤 3 · 启动前端:

可复制命令
yarn run serve

四、部署完毕,查看效果 打开 http://localhost:8000 或者 http://本机ip:8000 即可查看演示效果。

五、了解功能入口(来自功能图示章节)

  1. 管理题目:题目列表(配图 2)、题目创建(配图 3)、题目更新(配图 4)。
  1. 考试管理:考试列表(配图 5)、考试创建(配图 6)、考试更新(配图 7,作者注明还有点小 bug、开发中)。
  1. 我的考试:参加考试——在“考试列表”模块点击自己想参加的考试卡片即可(配图 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),该项目目前重构中、功能并不完善。

来源教程配图

API 文档
配图 1 · API 文档查看原图
题目查看
配图 2 · 题目查看查看原图
题目创建
配图 3 · 题目创建查看原图
题目更新
配图 4 · 题目更新查看原图
考试查看
配图 5 · 考试查看查看原图
考试创建
配图 6 · 考试创建查看原图
考试更新
配图 7 · 考试更新查看原图
参加考试1
配图 8 · 参加考试1查看原图

适用场景

高校或培训机构搭建在线考试
测验与练习平台
Python/Django 学习者作为前后端分离项目的实战示例
需要单选题
多选题
判断题题库管理与考试组织的场景
需要学生
教师
管理员多角色权限分离的考试系统二次开发
作为基于 DjangoRestFrameWork + JWT 权限返回数据的接口开发参考