基于Django REST Framework在线代码评测系统后端设计(Python)
无需注册登录,支付后按照提示操作即可获取该资料.
基于Django REST Framework在线代码评测系统后端设计(Python)(论文14000字,参考代码)
摘要:OJ(Online Judge)即代码在线评测系统,是以ACM/ICPC国际大学生程序设计竞赛中针对选手提交的代码进行在线评测的功能为核心而形成的一整套相关功能的系统,通常包括学生端的普通练习、课程习题、竞赛考试以及教师端的学生管理、题目管理、课程管理等功能模块。本设计分析了学校现有的OJ系统Web后端的不足,比如模块间耦合度高,前后端代码杂糅,难以进行功能扩展和维护等问题,尝试采用完全的前后端分离的架构,利用Django REST Framework框架,把繁重的代码评测系统,结合系统的特点以及程序设计的规范,拆分成多个功能模块,然后针对每个模块设计清晰、简洁的RESTful后端API接口,以此来实现数据在数据库和前端之间的传递和交互,从而使系统具有开发周期短、耦合度低、扩展性高、层次分明、逻辑清晰、易于维护等特点。
关键词: Online Judge;计算机教学;Django;前后端分离;RESTful
Design and Implementation of Online Judge system backend based on Django REST Framework
Abstract: OJ (Online Judge) is an online judge system for code. It is a set of related functions system based on the function of online judging of the code submitted by players in the ACM/ICPC International College Student Programming Competition. It usually includes student exercises, course exercises, competitions, exams, and teacher's student management, problem management, course management and other functional modules. This design analyzes the shortcomings of the school's existing OJ system Web backend, such as high coupling between modules, front-end code miscellaneous, difficult to expand functions and maintain, try to use a complete frontend backend separation architecture, using Django REST Framework, make the heavy online judge system, combined with the characteristics of the system and the specification of the program, split into multiple functional modules, and then design a clear and concise RESTful backend API interface for each module, in order to achieve data transfer and interaction between database and the front end, so that the system has the characteristics of short development cycle, low coupling, high scalability, clear hierarchy, clear logic, and easy maintenance.
Keywords: Online Judge; computer teaching; Django; frontend and backend separation; RESTful
目 录
1 绪论 1
1.1 OJ系统设计的背景、目的和意义 1
1.1.1 系统设计的背景 1
1.1.2 系统设计的目的 1
1.1.3 系统设计的意义 1
1.2 前后端分离和RESTful后端架构的优势 2
1.2.1 前后端分离的必要性 2
1.2.2 RESTful后端架构的优势 2
1.3 系统开发所用到的开发平台与运行环境 2
1.4 论文结构 3
2 需求分析 3
2.1 功能需求分析 3
2.1.1 学生端: 4
2.1.2 教师端 5
2.1.3 身份验证和权限管理 5
2.2 性能需求分析 5
2.2.1 系统稳定性需求 5
2.2.2 系统处理准确性、及时性需求 5
2.2.3 系统扩展性需求 6
2.2.4 系统易用性需求 6
3 系统可行性分析 6
3.1 技术可行性分析 6
3.2 经济可行性分析 6
3.3 社会环境可行性分析 6
4 系统设计 7
4.1 设计原则 7
4.2 总体设计 7
4.2.1 系统基础模块总体设计 7
4.2.2 学生端模块总体设计 8
4.2.3 教师端模块总体设计 9
4.2.4 系统的API路由设计 9
4.3 数据库分析与设计 11
4.3.1 数据流程分析 11
4.3.2 数据库概念设计 11
4.3.3 数据库逻辑设计 12
4.4 模块详细设计 15
4.4.1 系统基础设计 15
4.4.2 学生端设计 18
4.4.3 教师端设计 21
4.4.4前端对API调用过程示例 23
5 结论 24
参考文献 25
附录1 API实现代码和实现效果截图 27
致谢 37