在线考试系统采用前后端分离设计,后端基于Django框架搭建RESTful API,前端使用Vue3实现交互界面,数据库采用MySQL 8.0存储用户数据、试题库及考试记录,Redis用于缓存验证码和会话状态,用户权限通过JWT(JSON Web Token)进行管理,支持Token自动续期与IP白名单安全策略。
1、多角色权限控制
系统划分学生、教师、管理员三类角色:
学生:参与考试、查看成绩、模拟练习;
教师:创建试题、组卷、管理考试场次;
管理员:用户权限分配、系统参数配置。
2、智能组卷与阅卷
题库支持Python编程题、选择题等多种题型,教师可设置难度系数与知识点标签,系统根据规则自动生成试卷,编程题通过代码运行结果比对实现自动评分,客观题采用预设答案匹配机制。
3、登录与安全验证
集成短信验证码登录流程,结合容联云API实现验证码发送与校验,前端通过Axios拦截器自动附加Token,后端使用中间件验证权限,支持Token黑名单机制防止重复登录。
跨域处理:Django配置CORS_ORIGIN_ALLOW_ALL=True
并移除CSRF中间件,前端通过Vue.prototype.HOME
定义API基础路径。
文件管理:使用Django的ImageField
自动处理图片上传,存储路径通过MEDIA_ROOT
配置,前端通过OSS实现图片云端存储。
分页优化:后端采用Django Paginator分页查询,前端Vue组件通过事件传递页码,实现无刷新数据加载。
1、环境准备:
安装Python 3.9+、Node.js 16+、MySQL 8.0;
配置env.py
文件设置数据库连接与密钥参数。
2、服务启动:
后端执行python manage.py migrate
初始化数据库,uvicorn
启动ASGI服务;
前端通过npm install
安装依赖,vite
构建生产环境静态资源。
3、容器化扩展:
支持Docker-Compose一键部署,预置Nginx反向代理配置解决前端路由404问题,内置Celery实现异步任务处理。
第三方登录:可参照钉钉登录实现方案,通过OAuth2.0协议接入第三方认证服务;
数据可视化:结合Django REST Framework的序列化器,生成考试统计报表并导出为Excel文件。