Django 中的设置 运行 在 运行 服务器时重复
Settings in Django run repeat when runserver
不知道为什么我的django app 运行 settings/base.py 2次。我认为这会使我的应用程序变慢
在我的 settings/base.py 中打印了
print('this is base_dir')
print(BASE_DIR)
输出为:
this is base_dir
F:.Django\BLOG_PROJECT\src_blog
this is base_dir
F:.Django\BLOG_PROJECT\src_blog
这是我的设置文件:
├── settings
| ├──__init__.py
| ├──base.py
| ├──dev.py
| ├──prod.py
我的 settings\__init__.py
文件包含:
import os
from dotenv import load_dotenv
load_dotenv()
if os.environ['ENV_SETTING'] =='prod':
from .prod import *
else:
from .dev import *
from .base import *
这可能与 Django 中旧的双线程产生有关。 Django 的设置方式在一开始会产生两个线程,所以一个进程在那里处理请求,另一个进程监视您是否更改了任何代码,以便它可以重新产生第一个线程。
如果在settings.py
中打印以下内容
import os
print(os.getpid())
您会看到它打印了 2 个不同的值。据我所知,这是标准的 django 行为。
不知道为什么我的django app 运行 settings/base.py 2次。我认为这会使我的应用程序变慢
在我的 settings/base.py 中打印了
print('this is base_dir')
print(BASE_DIR)
输出为:
this is base_dir
F:.Django\BLOG_PROJECT\src_blog
this is base_dir
F:.Django\BLOG_PROJECT\src_blog
这是我的设置文件:
├── settings | ├──__init__.py | ├──base.py | ├──dev.py | ├──prod.py
我的 settings\__init__.py
文件包含:
import os
from dotenv import load_dotenv
load_dotenv()
if os.environ['ENV_SETTING'] =='prod':
from .prod import *
else:
from .dev import *
from .base import *
这可能与 Django 中旧的双线程产生有关。 Django 的设置方式在一开始会产生两个线程,所以一个进程在那里处理请求,另一个进程监视您是否更改了任何代码,以便它可以重新产生第一个线程。
如果在settings.py
import os
print(os.getpid())
您会看到它打印了 2 个不同的值。据我所知,这是标准的 django 行为。