我在这如下这两篇文章都说过青岛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. Modular Inverse(zoj3609+欧几里德)

    Modular Inverse Time Limit: 2 Seconds      Memory Limit: 65536 KB The modular modular multiplicative ...

  2. Redis的五种数据类型的简单介绍和使用

    1.准备工作: 1.1在Linux下安装Redis  https://www.cnblogs.com/dddyyy/p/9763098.html 1.2启动Redis 先把root/redis的red ...

  3. jsp使用servlet实现用户登录 及动态验证码

    在进行表单设计中,验证码的增加恰恰可以实现是否为“人为”操作,增加验证码可以防止网站数据库信息的冗杂等... 现在,我将讲述通过servlet实现验证码: 验证码作为一个图片,在页面中为“画”出来的, ...

  4. LintCode Binary Search

    For a given sorted array (ascending order) and a target number, find the first index of this number ...

  5. 【读书笔记】iOS-如何选择本地化应用

    早在2007年发布iPhone的时候 ,苹果并没有一同发布本地化SDK,苹果公司声称不需要本地SDK,鼓励大家使用JavaScript,CSS和HTML开发Web应用.但接下来剧情并没有按照苹果设计的 ...

  6. python总结(更新中)

    1 python函数中的参数传递(注意可变和不可变传递) 可更改(mutable)与不可更改(immutable)对象 在 python 中,strings, tuples, 和 numbers 是不 ...

  7. FreeSSHD login with permission denied

    登录遇到问题: Permission denied, please try again. 解决方法: 在window中使用freesshd开启ssh后,客户端登陆时报 access denied错误 ...

  8. eclipse没有server选项解决方法

    eclipse是是一个开放源代码的.基于Java的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境. 它使用频率十分高,然而当使用它配置weblogic的时候,经常 ...

  9. MySQL MySql连接数与线程池

    MySql连接数与线程池 by:授客 QQ:1033553122 连接数 1.  查看允许的最大并发连接数 SHOW VARIABLES LIKE 'max_connections'; 2.  修改最 ...

  10. 安卓开发_关于WebView加载页面空白问题

    依据我自己的测试,发现有时候用APP打开网页的时候,有的网页加载成功之前需要很久,有的一下就出来了(比如百度) 当加载时间过长的情况下,这时候显示的是空白界面,其实不是代码问题,只是要打开的这个网页太 ...