littlebot
Published on 2025-04-08 / 1 Visits
0

【源码】基于Python和Docker的在线编程判题系统

项目简介

本项目是一个在线编程判题系统,利用Python脚本和模块构建,借助Docker实现环境部署。系统具备用户管理、问题管理、提交管理等功能,同时使用Redis进行缓存处理,提供RESTful API接口,还具备XSS过滤功能以保障数据安全。

项目的主要特性和功能

  1. 用户管理:支持创建、更新和删除用户账户,管理用户权限和角色。
  2. 问题管理:可创建、编辑和删除问题,管理问题的标签、难度、规则类型等属性。
  3. 提交管理:处理用户代码提交,包括创建提交、获取提交列表、检查提交存在性和重新评判提交等。
  4. 缓存处理:采用Redis作为缓存后端,提升系统响应速度和性能。
  5. API接口:提供RESTful API,方便前端与后台进行数据交互。
  6. 管理命令:提供Django管理命令,用于初始化用户账户、重置用户密码等管理任务。
  7. 数据安全:具备序列化器和验证器确保数据的安全性和正确性,提供XSS过滤功能防止跨站脚本攻击。

安装使用步骤

环境准备

Linux环境

  1. 安装必要的依赖: bash sudo apt-get update && sudo apt-get install -y vim python3-pip curl git pip3 install --upgrade pip pip install docker-compose
  2. 安装Docker: 国内用户使用脚本一键安装: sudo curl -sSL https://get.daocloud.io/docker | sh
    国外用户使用脚本一键安装: sudo curl -sSL get.docker.com | sh 详细步骤参照: https://docs.docker.com/install/

Windows环境

Windows下的安装仅供体验,勿在生产环境使用。如有必要,请使用虚拟机安装Linux并将OJ安装在其中。以下教程仅适用于Win10 x64下的 PowerShell。 1. 安装Windows的Docker工具。 2. 右击右下角Docker图标,选择Settings进行设置。 3. 选择 Shared Drives 菜单,之后勾选你想安装OJ的盘符位置(例如勾选D盘),点击 Apply。 4. 输入Windows的账号密码进行文件共享。 5. 安装 Pythonpipgitdocker-compose,安装方法自行搜索。

开始安装

  1. 请选择磁盘空间富余的位置,运行下面的命令: bash
  2. 启动服务: bash docker-compose up -d

根据网速情况,大约5到30分钟就可以自动搭建完成,全程无需人工干预。等命令执行完成,然后运行 docker ps -a,当看到所有的容器的状态没有 unhealthyExited (x) xxx 就代表OJ已经启动成功。

使用系统

通过浏览器访问服务器的HTTP 80端口或者HTTPS 443端口,就可以开始使用了。后台管理路径为/admin, 安装过程中自动添加的超级管理员用户名为 root,密码为 rootroot请务必及时修改密码

定制

2.0版将一些常用设置放到了后台管理中,您可以直接登录管理后台对系统进行配置,而无需进行代码改动。若需要对系统进行修改或二次开发,请参照各模块的README,修改完成后需自行构建Docker镜像并修改docker-compose.yml

遇到问题

请参照: http://opensource.qduoj.com/

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】