在完成前面的项目配置、单独运行之后,现在我们将前端、后端、沙箱服务进行联合运行,方便二次开发热部署,至于怎么部署在生产环境,后面再考虑了。
启动顺序:后端->前端->沙箱服务。
后端服务
和之前一样,在 PyCharm 打开项目,并激活之前弄好的虚拟环境:
source .venv/bin/activate
输入:
python3 manage.py inituser --username root --password rootroot --action create_super_admin
**创建一个账户为 **
root
**,密码为 **
rootroot
** 的超级管理员用户**。
输入:
python3 manage.py runserver
启动 Django 服务。
这样就可以了,等 全部启动 后就可以热更新二次开发了。
前端服务
同样的,按之前的命令,切换到前端项目的目录,输入
code .
,使用 VS Code 打开项目:
输入:
exportTARGET=http://127.0.0.1:8000/ &&npm run dev
这样就可以了,等 全部启动 后就可以热更新二次开发了。
沙箱服务
同样的,按之前的命令,切换到沙箱项目的目录,输入
code .
,使用 VS Code 打开项目:
好了,现在访问前端管理页面,登录超级管理员的账户:
http://localhost:8080/admin/index.html
打开 Judger Server,复制 Token 内容:
我的是 bf069db42a485ae8a1b98ebf67707757
这里注意,注意,前面在【111】沙箱服务文章(【111】沙箱模块获取与运行)中,在环境变量里面随便增加了一个 TOKEN:
如果你不打算将上面复制的 Token 添加到环境变量里面,要把环境变量里面的 TOKEN 删除掉,以免冲突错误,然后再复制下面的命令在 bash 执行(请自己替换成实际复制得到的 Token 内容):
exportTOKEN="复制得到的token值"
输入:
echo$TOKEN
看一下有没有 TOKEN 的值:
切换到项目的
server
目录,复制下面的命令,执行心跳服务和沙箱服务:
exportSERVICE_URL="http://127.0.0.1:8081";\exportBACKEND_URL="http://127.0.0.1:8000/api/judge_server_heartbeat";\whiletrue;do python3 service.py;sleep5;done&\
gunicorn -w4-b127.0.0.1:8081 server:app
此时切换到前端管理的 Judger Server 页面,可以看到有一个 Judger Server 了:
这样就可以了,等 **全部启动 **后就可以热更新二次开发了。
完成首次联合运行
OK,以上操作后,就完成了首次联合运行,如果你比较熟悉整个过程,看到这里就可以了,下面的呢,是对不熟悉的小伙伴的,后面再跑的话,看下面的内容。
后续联合运行
后续的联合运行操作和上面的一样的,只是可以不再添加管理员用户。
如果你会的话,可以写一个自动的启动脚本,一键启动。
后端服务启动
和之前一样,在 PyCharm 打开项目,并激活之前弄好的虚拟环境:
source .venv/bin/activate
输入:
python3 manage.py runserver
启动 Django 服务。
前端服务启动
同样的,按之前的命令,切换到前端项目的目录,输入
code .
,使用 VS Code 打开项目:
输入:
exportTARGET=http://127.0.0.1:8000/ &&npm run dev
沙箱服务启动
同样的,按之前的命令,切换到沙箱项目的目录,输入
code .
,使用 VS Code 打开项目:
好了,现在访问前端管理页面,登录超级管理员的账户:
http://localhost:8080/admin/index.html
打开 Judger Server,复制 Token 内容:
我的是 bf069db42a485ae8a1b98ebf67707757
这个是可以添加到环境变量里面的,我就不添加了,也可以直接复制下面的命令在 bash 执行:
exportTOKEN="bf069db42a485ae8a1b98ebf67707757"
输入:
echo$TOKEN
看一下有没有 TOKEN 的值:
切换到项目的
server
目录,复制下面的命令,执行心跳服务和沙箱服务:
下面的地址端口可以更改,冲突的话,可以不改。
exportSERVICE_URL="http://127.0.0.1:8081";\exportBACKEND_URL="http://127.0.0.1:8000/api/judge_server_heartbeat";\whiletrue;do python3 service.py;sleep5;done&\
gunicorn -w4-b127.0.0.1:8081 server:app
此时切换到前端管理的 Judger Server 页面,可以看到有一个 Judger Server 了:
二次开发
完成联合运行后,就可以热更新二次开发了。
版权归原作者 时叶Shey 所有, 如有侵权,请联系我们删除。