OnlineJudgeServer运行
我在这如下这两篇文章都说过青岛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运行的更多相关文章
- python3.6在linux持久运行django
最近线上运行一个OnlineJudgeServer的项目,通过python manage.py runserver 0.0.0.0:8090运行,如果关闭当前窗口,实际就相当于关闭了这个进程. 之前说 ...
- ASP.NET Aries 入门开发教程1:框架下载与运行
背景: 鉴于框架的使用者越来越多,文档太少,不少用户反映框架的入门门槛太高. 好吧,再辛苦下,抽时间写教程吧! 步骤1:下载框架源码 开源地址:https://github.com/cyq1162/A ...
- 在传统.NET Framework 上运行ASP.NET Core项目
新的项目我们想用ASP.NET Core来开发,但是苦于我们历史的遗产很多,比如<使用 JavaScriptService 在.NET Core 里实现DES加密算法>,我们要估计等到.N ...
- Sublime Text3配置在可交互环境下运行python快捷键
安装插件 在Sublime Text3下面写代码感觉很不错,但是写Python的时候遇到了一些问题. 用Sublime Text3打开python文件,或者在Sublime Text3下写好pytho ...
- hadoop 2.7.3本地环境运行官方wordcount-基于HDFS
接上篇<hadoop 2.7.3本地环境运行官方wordcount>.继续在本地模式下测试,本次使用hdfs. 2 本地模式使用fs计数wodcount 上面是直接使用的是linux的文件 ...
- hadoop 2.7.3本地环境运行官方wordcount
hadoop 2.7.3本地环境运行官方wordcount 基本环境: 系统:win7 虚机环境:virtualBox 虚机:centos 7 hadoop版本:2.7.3 本次先以独立模式(本地模式 ...
- Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境
首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...
- Linux scp 设置nohup后台运行
Linux scp 设置nohup后台运行 1.正常执行scp命令 2.输入ctrl + z 暂停任务 3.bg将其放入后台 4.disown -h 将这个作业忽略HUP信号 5.测试会话中断,任务继 ...
- 在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 ...
随机推荐
- oracle sql优化的几种方法
1.最基本最简单的方式是减少访问数据库的次数.oracle在内部执行了许多工作,比如解析SQL语句, 估算索引的利用率, 读数据块等等,都将大量耗费oracle数据库的运行 2.选择最有效率的表名顺 ...
- 【IDEA&&Eclipse】2、从Eclipse转移到IntelliJ IDEA一点心得
本人使用IntelliJ IDEA其实并不太久,用了这段时间以后,觉得的确很是好用.刚刚从Eclipse转过来的很多人开始可能不适应,我就把使用过程中的一些经验和常用功能分享下,当然在看这篇之前推荐你 ...
- HTML-CSS写抽屉网的置顶区域
1.在pycharm的已有工程中新建一个html文件. 2.在<body></body>标签内部写入要内容: <div class='head-box' > < ...
- Oracle 中 流程控制函数 decode用法
函数介绍 DECODE函数是ORACLE PL/SQL的功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其它数据库厂商的SQL实现还没有此功能. DECODE有什么用途呢?先构造一 ...
- Linux 学习笔记之超详细基础linux命令 Part 9
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 8----------------- ...
- Linux 操作系统下为网卡配置ip
Linux操作系统下为网卡配置ip by:授客 QQ:1033553122 1. Linux单一网卡设置多IP的配置方法 在Linux下网卡接口逻辑名被称为eth0,eth1,eth2,..... ...
- Ubuntu切换root身份,命令行以中文显示
很多VPS商给的默认用户名并不是root,用以下命令处理即可: 1.修改root密码 sudo passwd root 输入密码,回车,再确认一次即可 2.更改密码后切换root身份 su root ...
- sass @function,@for,@mixin 的应用
项目前提: 不同的汽车显示不同的图片,一共9种汽车:每种汽车显示不同状态的图片,一共6种状态,所以一共会有54张图片 后台接口返回汽车种类分别为:1-9,汽车状态分别为:0-5 项目需求: 根据后台返 ...
- 分布式文件系统(HDFS)与 linux系统文件系统 对比
初次接触分布式文件系统,有很多迷惑.通过参考网络文章,这里进行对比一下Hadoop 分布式文件系统(HDFS)与 传统文件系统之间的关系: Linux 文件系统 分布式文件系统 块 块对应物理磁盘 ...
- oracle启动的三个阶段
startup nomount 时,数据库状态为 started; alter database mount 时, 状态为 mounted; alter database open 时,状态为 ope ...