gpt4 book ai didi

python - 从一个 Django 项目启动多个 Django 开发服务器

转载 作者:太空宇宙 更新时间:2023-11-04 06:23:15 26 4
gpt4 key购买 nike

我正在为 Django 项目编写基于 Web 的代码编辑器。我想从编辑器中启动 Django runserver 命令,而不会干扰编辑器本身的服务器。下面是我使用的代码。服务器(端口 9999)已启动,但是当我更改我刚刚启动其服务器的项目的代码时,两个服务器都停止了。错误是“该端口已在使用中”

def runserver(request, project_slug):
project = Project.objects.get(slug=project_slug)
import os
os.system('cd %s; pwd; env; DJANGO_SETTINGS_MODULE=%s.settings; rm nohup.out; nohup python manage.py runserver 0.0.0.0:9999 &' % (project.get_current_directory(), project.slug))
return HttpResponseRedirect(request.META['HTTP_REFERER'])

最佳答案

您需要投入更多的精力来管理您启动的服务器。如果您多次调用 runserver(request, project_slug),该资源将已被绑定(bind)到该端口的另一个后台进程占用,现在您甚至没有 PID文件以引用该过程。

您需要添加一些体操来启动/杀死 WSGIServer你肯定需要使用 socket拥有它的低级网络库 select a free port for you -- 推迟手动选择端口,因为您无法保证系统上的其他进程不会占用该端口并导致您的应用程序进入不可恢复的错误状态。

幸运的是,您拥有开源 Lettuce在单独线程的后台正确管理 Django 服务器实例的项目。这是 actual code for the server ,我鼓励您出于自己的目的查看和采用。

关于python - 从一个 Django 项目启动多个 Django 开发服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10396121/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com