我在这如下这两篇文章都说过青岛OJ相关的

OnlineJudgeFE之前端二次开发

青岛大学开源OJ平台搭建

今天我还是要来讲讲关于这个青岛OJ。

青岛OJ采用的是完全的前后端分离架构。

OnlineJudgeFE相当于是前端,是使用Vue.js+webpack或gulp等打包的一个项目。

而今天所说的OnlineJudgeServer则是它的后端。

前端+后端分离的开发是当下的趋势。

后续我会写一篇关于前后端相关的文章,抱着个人想法+读过的书及其工作和学习上面的实践。

今天的主要话题是如何在本地搭建好Python的环境将青岛OJ的OnlineJudgeServer在windows上跑起来。

一、环境准备

Python3.7或者Python3.6

如果你原来安装Python2.7或者其他版本记得在对应的环境变量中删除。

关于Python安装就不多说了。

常见问题:

Pip命令找不到

一般配置环境变量

C:\Users\eluzhu\AppData\Local\Programs\Python\Python37\Scripts\pip3.7.exe

如果环境变量无效,原因通常是因为(我个人遇到的)你在原有的用户变量中配置好之前的,通常将之前的python环境删除或者重新编辑成现在的即可。

从这里我们可以看到用户变量优于系统变量。

Django环境:

pip.exe install django

pip.exe install celery

pip.exe install raven

pip.exe install envelopes

其它相关库安装:

安装docker:

https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe

docker安装成功通常会在桌面有如下三个东西

pip.exe install djangorestframework

pip.exe install psycopg2

pip.exe install django==1.11.4

pip.exe install qrcode

pip.exe install otpauth

pip.exe install pillow

pip.exe install xlsxwriter

pip.exe install requests

pip.exe install django_redis

pip.exe install python-dateutil

pip.exe install jsonfield

pip.exe install docker-compose

二、执行环境和安装docker成功

双击运行它:

Docker成功的标志:

docker rm -f oj-postgres-dev oj-redis-dev

//通常如果存在oj-redis-dev就删除,不存在的话可以不用删除一般情况下,通过docker ps或者docker ps -a可以查看当前正在使用的容器或者所有容器。

docker run -it -d -e POSTGRES_DB=onlinejudge -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=1234 -p 127.0.0.1:5432:5432 --name oj-postgres-dev postgres:10

//启动并运行(包括拉取镜像)postgres容器

docker run -it -d -p 127.0.0.1:6380:6379 --name oj-redis-dev redis:4.0-alpine

//启动并运行(包括拉取镜像)redis容器

可能修改的地方:

修改的地方为如下(设置成该命令中的那样)

docker run -it -d -e POSTGRES_DB=onlinejudge -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=1234 -p 127.0.0.1:5432:5432 --name oj-postgres-dev postgres:10

//这个命令不用运行,之所以列举出来是为了说明为什么修改。:

还有一个secrey.key需要移到这

这个secrey.key可通过命令生成:

在linux上用随机数生成这个文件

echo `cat /dev/urandom | head -1 | md5sum | head -c 32` > data/config/secret.key

注意:如果该命令docker run -it -d -e POSTGRES_DB=onlinejudge -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=1234 -p 127.0.0.1:5432:5432 --name oj-postgres-dev postgres:10

       执行失败的话,请参考后面安装postgresql,手动建立postgresql数据库,库名为onlinejudge,这样问题即可迎刃而解。

三、运行

最后执行python manage.py runserver

出现如图,表示成功:

界面形式:

所需环境资源可以去该地址下载:

链接:https://pan.baidu.com/s/1h_8qIoGi9Cz7rVrqleQO4Q

提取码:bwib

基本下载的软件双击下一步下一步即可。

Postgresql如果要运行的话,参考如下:

最后会弹出这个:

如果要连接,请双击击PostgreSQL11,出现该图:

输入对应的密码即可,进入如下界面,表示成功:

OnlineJudgeServer运行的更多相关文章

  1. python3.6在linux持久运行django

    最近线上运行一个OnlineJudgeServer的项目,通过python manage.py runserver 0.0.0.0:8090运行,如果关闭当前窗口,实际就相当于关闭了这个进程. 之前说 ...

  2. ASP.NET Aries 入门开发教程1:框架下载与运行

    背景: 鉴于框架的使用者越来越多,文档太少,不少用户反映框架的入门门槛太高. 好吧,再辛苦下,抽时间写教程吧! 步骤1:下载框架源码 开源地址:https://github.com/cyq1162/A ...

  3. 在传统.NET Framework 上运行ASP.NET Core项目

    新的项目我们想用ASP.NET Core来开发,但是苦于我们历史的遗产很多,比如<使用 JavaScriptService 在.NET Core 里实现DES加密算法>,我们要估计等到.N ...

  4. Sublime Text3配置在可交互环境下运行python快捷键

    安装插件 在Sublime Text3下面写代码感觉很不错,但是写Python的时候遇到了一些问题. 用Sublime Text3打开python文件,或者在Sublime Text3下写好pytho ...

  5. hadoop 2.7.3本地环境运行官方wordcount-基于HDFS

    接上篇<hadoop 2.7.3本地环境运行官方wordcount>.继续在本地模式下测试,本次使用hdfs. 2 本地模式使用fs计数wodcount 上面是直接使用的是linux的文件 ...

  6. hadoop 2.7.3本地环境运行官方wordcount

    hadoop 2.7.3本地环境运行官方wordcount 基本环境: 系统:win7 虚机环境:virtualBox 虚机:centos 7 hadoop版本:2.7.3 本次先以独立模式(本地模式 ...

  7. Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境

    首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...

  8. Linux scp 设置nohup后台运行

    Linux scp 设置nohup后台运行 1.正常执行scp命令 2.输入ctrl + z 暂停任务 3.bg将其放入后台 4.disown -h 将这个作业忽略HUP信号 5.测试会话中断,任务继 ...

  9. 在docker中运行ASP.NET Core Web API应用程序(附AWS Windows Server 2016 widt Container实战案例)

    环境准备 1.亚马逊EC2 Windows Server 2016 with Container 2.Visual Studio 2015 Enterprise(Profresianal要装Updat ...

随机推荐

  1. 还需要注册的是我们还有一个是“交差集” cross join, 这种Join没有办法用文式图表示,因为其就是把表A和表B的数据进行一个N*M的组合,即笛卡尔积。表达式如下:

             还需要注册的是我们还有一个是"交差集" cross join, 这种Join没有办法用文式图表示,因为其就是把表A和表B的数据进行一个N*M的组合,即笛卡尔积.表 ...

  2. HTTP 错误 500 调用loadlibraryex失败

    HTTP 错误 500.0 - Internal Server Error 调用 LoadLibraryEx 失败,在 ISAPI 筛选器 C:\Windows\Microsoft.NET\Frame ...

  3. oracle sql优化的几种方法

    1.最基本最简单的方式是减少访问数据库的次数.oracle在内部执行了许多工作,比如解析SQL语句, 估算索引的利用率,  读数据块等等,都将大量耗费oracle数据库的运行 2.选择最有效率的表名顺 ...

  4. Java基础——Oracle(二)

    一.Oracle 中的几个服务 1.OracleDBConsoleorcl 进程:nmesrvc.exe oem控制台服务进程,dba用.Oracle Enterprise Manager(Oracl ...

  5. 关于eclipse项目的x号报错的一些问题

    有些时候项目中并未有什么问题 但项目前会有一个X号报错且无法运行项目 我们不妨从jre和Tomcat的一些配置中找原因 1,首先查看jre的安装是否正确,可以看见并未出错 ,如果有问题,重新导入一下即 ...

  6. Flask 中的 特殊装饰器before_request/after_request

    before_request :在请求收到之前绑定一个函数做一些事情. after_request: 每一个请求之后绑定一个函数,如果请求没有异常. teardown_request: 每一个请求之后 ...

  7. python爬虫入门---第三篇:保存一张图片

    import requests import os url = 'http://imgsrc.baidu.com/forum/w%3D580%3B/sign=749ed018cecec3fd8b3ea ...

  8. git命令详解( 八)

    此为记录git的第八篇,前七篇为远程篇,工作中最常用的都在前七篇,因为要在远程分支上合作开发     在提交树上移动 撤销变更 在提交树上移动 在接触 Git 更高级功能之前,我们有必要先学习在你项目 ...

  9. 安全测试 WEB安全测试手册

    WEB安全测试手册 By:授客 QQ:1033553122 欢迎加入软件性能测试交流QQ群:7156436 概述 Ø          目的 Ø          适用读者 Ø          适用 ...

  10. LyX使用中的一些问题

    编译开始产生的检查错误 试用LyX2.3,在2.15中能编译通过的文档,竟然提示错误 The user preamble of your document contains glyphs that a ...