You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django执行runserver时settings/base.py文件重复加载两次如何解决

问题产生原因
  • 核心是base.py被重复导入:绝大多数分环境的Django配置结构中,dev.py、prod.py会预先导入base.py继承公共配置,这是第一次加载base.py;而你的settings/__init__.py在导入完dev.py/prod.py后,又单独执行了from .base import *,触发了第二次加载。
  • 特殊情况:如果修复导入逻辑后开发环境仍出现两次打印,属于Django开发模式的正常表现:runserver默认会启动两个进程,一个处理请求,一个监听代码变更实现热重载,生产环境正式启动时不会有该问题,不会拖慢运行速度。
对应解决办法

你可以任选以下一种方案修改:

  • 方案一:保留dev.py/prod.py中导入base.py的逻辑,直接删除settings/__init__.py末尾的from .base import *语句即可,避免重复导入。
  • 方案二:先移除dev.py、prod.py中对base.py的导入语句,再调整settings/__init__.py的导入顺序,优先导入公共配置,再用环境专属配置覆盖公共配置,修改后的__init__.py代码如下:
import os
from dotenv import load_dotenv
load_dotenv()

# 先加载全局公共配置
from .base import *

# 再加载对应环境的专属配置,自动覆盖base中同名配置项
if os.environ['ENV_SETTING'] =='prod':
   from .prod import *
else:
   from .dev import *

内容的提问来源于stack exchange,提问作者Trọng Nhân

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 07:42:02