为什么django会运行两次?

Gam*_*iac 15 django

每当我在django print中的某个地方settings.py或任何随机.py文件中放入(随机)语句时,它会被打印两次.为什么?

试试这个:

TEMPLATE_DIRS(in settings.py)上设置值后,只需在其后添加一个print语句: print TEMPLATE_DIRS

并且您将打印出两次模板目录.或者,如果你感觉过时了,只需print "Hello World在声明后添加TEMPLATE_DIRS,它就会打印两次.

要运行的命令: python manage.py runserver

Ewa*_*wan 25

它没有运行两次,它分支到2个进程,每个进程运行一次.

回答:为什么django项目中的init模块加载了两次

它应该只加载一次......每个进程.我猜想manage.py forks,并且启动了两个独立的进程.

一篇文章.

如果您将此添加到您的帐户,请进行验证 settings.py

import os
print(os.getpid())
Run Code Online (Sandbox Code Playgroud)

它将打印出2个不同的进程ID号,表明它产生了2个进程.

您可以在维基百科上阅读更多关于分叉的信息.

这似乎也是重复的:

django - settings.py似乎加载了多次?

  • 但问题仍然存在:它为什么分叉?(可能的答案:因为你没有指定`--noreload`,所以一个进程可以处理请求,另一个进程可以监视你是否更改了任何代码以便它可以重新生成第一个代码.) (20认同)
  • 仍然没有回答为什么。 (2认同)