我在這如下這兩篇文章都說過青島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,出現該圖:

輸入對應的密碼即可,進入如下界面,表示成功:

