#python #django #django-settings #django-3.2
Вопрос:
Я не знаю, почему мое приложение django работает settings/base.py 2 раза. Я думаю, что это заставило бы мое приложение замедлиться
В моем settings/base.py Я напечатал
print('this is base_dir')
print(BASE_DIR)
выход есть:
this is base_dir
F:7.DjangoBLOG_PROJECTsrc_blog
this is base_dir
F:7.DjangoBLOG_PROJECTsrc_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 *
Ответ №1:
Вероятно, это связано со старым добрым двойным потоком, появляющимся в Django. Способ настройки Django при запуске порождает два потока, поэтому один процесс предназначен для обработки запросов, а другой-для просмотра, изменили ли вы какой-либо код, чтобы он мог возродить первый.
Если вы напечатаете следующее в settings.py
import os
print(os.getpid())
Вы увидите, что он печатает 2 разных значения. Насколько я знаю, это стандартное поведение джанго.
Комментарии:
1. Ну что ж! Так оно и было! Приятно это знать! Спасибо @AzyCrw4282!
2. @AzyCrw4282: Означает ли это, что это происходит только с сервером разработки, и что на рабочем сервере на каждого работника приходится один поток?
3. @физическая привлекательность Хороший вопрос. Хотя у меня нет производственных средств для проверки этого, я бы подумал, что это так.