【问题标题】:Settings in Django run repeat when runserverDjango 中的设置在运行服务器时重复运行
【发布时间】:2021-11-26 14:52:21
【问题描述】:

我不知道为什么我的 django 应用运行 settings/base.py 2 次。我认为这会使我的应用程序变慢
在我的 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 *

【问题讨论】:

    标签: python django django-settings django-3.2


    【解决方案1】:

    这可能与 Django 中良好的旧双线程生成有关。 Django 的设置方式在开始时会生成两个线程,因此一个进程用于处理请求,另一个用于观察您是否更改了任何代码,以便重新生成第一个。

    如果您在settings.py中打印以下内容

    import os
    print(os.getpid())
    

    您会看到它打印了 2 个不同的值。据我所知,这是标准的 django 行为。

    【讨论】:

    • 好吧!它做了!很高兴知道这一点!谢谢@AzyCrw4282!
    • @AzyCrw4282:这是否意味着这只发生在开发服务器上,而在生产服务器上,每个工作人员只有一个线程?
    • @physicalattraction 好问题。虽然,我没有生产手段来测试这一点,但我认为确实如此。
    猜你喜欢
    • 2018-07-13
    • 2017-05-17
    • 2021-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 2023-04-08
    相关资源
    最近更新 更多