python - Django 中的设置在运行服务器时重复运行

标签 python django django-settings django-3.2

我不知道为什么我的 django 应用程序运行 settings/base.py 两次。我认为这会使我的应用变慢
在我的 settings/base.py 中我打印了

print('this is base_dir')
print(BASE_DIR)

输出是:

this is base_dir
F:\7.Django\BLOG_PROJECT\src_blog
this is base_dir
F:\7.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 行为。

关于python - Django 中的设置在运行服务器时重复运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69465477/

相关文章:

python - 使用 PyGObject 自定义 Gtk.Container

python - 一次将多个应用程序添加到 INSTALLED_APPS

python - Pydev autogen DJANGO_SETTINGS_MODULE 环境变量?

python - Heroku 在部署时按预期执行 collectstatic?

python - 根据另一个字段的值验证 Django 模型字段?

python - Django 1.7 中的多个设置文件

python - 有和没有显式基类的类之间 __dict__ 的差异

c# - 如何在 Python 控制台应用程序中制作不确定的进度条?

python - 使用 os.system() 问题在 Ubuntu 上终止进程

python - django2.1 发送电子邮件失败 :ssl. SSLError : [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl. c:833)