0


【112】前端、后端、沙箱服务联合运行

在完成前面的项目配置、单独运行之后,现在我们将前端、后端、沙箱服务进行联合运行,方便二次开发热部署,至于怎么部署在生产环境,后面再考虑了。
启动顺序:后端->前端->沙箱服务。

后端服务

和之前一样,在 PyCharm 打开项目,并激活之前弄好的虚拟环境:

source .venv/bin/activate

image.png
输入:

python3 manage.py inituser --username root --password rootroot --action create_super_admin

**创建一个账户为 **

root

**,密码为 **

rootroot

** 的超级管理员用户**。
输入:

python3 manage.py runserver

启动 Django 服务。
image.png
这样就可以了,等 全部启动 后就可以热更新二次开发了。

前端服务

同样的,按之前的命令,切换到前端项目的目录,输入

code .

,使用 VS Code 打开项目:
image.png
输入:

exportTARGET=http://127.0.0.1:8000/ &&npm run dev

image.png
这样就可以了,等 全部启动 后就可以热更新二次开发了。

沙箱服务

同样的,按之前的命令,切换到沙箱项目的目录,输入

code .

,使用 VS Code 打开项目:
image.png
好了,现在访问前端管理页面,登录超级管理员的账户:

http://localhost:8080/admin/index.html

image.png
打开 Judger Server,复制 Token 内容:
image.png

我的是 bf069db42a485ae8a1b98ebf67707757

这里注意,注意,前面在【111】沙箱服务文章(【111】沙箱模块获取与运行)中,在环境变量里面随便增加了一个 TOKEN:
image.png
如果你不打算将上面复制的 Token 添加到环境变量里面,要把环境变量里面的 TOKEN 删除掉,以免冲突错误,然后再复制下面的命令在 bash 执行(请自己替换成实际复制得到的 Token 内容):

exportTOKEN="复制得到的token值"

image.png
输入:

echo$TOKEN

看一下有没有 TOKEN 的值:
image.png
切换到项目的

server

目录,复制下面的命令,执行心跳服务和沙箱服务:
image.png

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

image.png
此时切换到前端管理的 Judger Server 页面,可以看到有一个 Judger Server 了:
image.png
这样就可以了,等 **全部启动 **后就可以热更新二次开发了。

完成首次联合运行

OK,以上操作后,就完成了首次联合运行,如果你比较熟悉整个过程,看到这里就可以了,下面的呢,是对不熟悉的小伙伴的,后面再跑的话,看下面的内容


后续联合运行

后续的联合运行操作和上面的一样的,只是可以不再添加管理员用户。

如果你会的话,可以写一个自动的启动脚本,一键启动。

后端服务启动

和之前一样,在 PyCharm 打开项目,并激活之前弄好的虚拟环境:

source .venv/bin/activate

image.png
输入:

python3 manage.py runserver

启动 Django 服务。
image.png

前端服务启动

同样的,按之前的命令,切换到前端项目的目录,输入

code .

,使用 VS Code 打开项目:
image.png
输入:

exportTARGET=http://127.0.0.1:8000/ &&npm run dev

image.png

沙箱服务启动

同样的,按之前的命令,切换到沙箱项目的目录,输入

code .

,使用 VS Code 打开项目:
image.png
好了,现在访问前端管理页面,登录超级管理员的账户:

http://localhost:8080/admin/index.html

image.png
打开 Judger Server,复制 Token 内容:
image.png

我的是 bf069db42a485ae8a1b98ebf67707757

这个是可以添加到环境变量里面的,我就不添加了,也可以直接复制下面的命令在 bash 执行:

exportTOKEN="bf069db42a485ae8a1b98ebf67707757"

image.png
输入:

echo$TOKEN

看一下有没有 TOKEN 的值:
image.png
切换到项目的

server

目录,复制下面的命令,执行心跳服务和沙箱服务:
image.png
下面的地址端口可以更改,冲突的话,可以不改。

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

image.png
此时切换到前端管理的 Judger Server 页面,可以看到有一个 Judger Server 了:
image.png

二次开发

完成联合运行后,就可以热更新二次开发了。

标签: 前端

本文转载自: https://blog.csdn.net/m0_73331512/article/details/140287395
版权归原作者 时叶Shey 所有, 如有侵权,请联系我们删除。

“【112】前端、后端、沙箱服务联合运行”的评论:

还没有评论