您的位置:首页 >Django 项目加载 .env 实时生效方法
发布于2026-03-15 阅读(0)
扫一扫,手机访问

本文详解 Django 项目中通过 django-environ 加载 .env 文件的完整流程,涵盖环境配置、变量读取、服务重启要点及常见失效原因,确保修改后立即生效。
本文详解 Django 项目中通过 django-environ 加载 .env 文件的完整流程,涵盖环境配置、变量读取、服务重启要点及常见失效原因,确保修改后立即生效。
Django 本身不原生支持 .env 文件,因此仅将变量写入 .env 并重启开发服务器(如 python manage.py runserver)是无效的——Django 不会自动读取或解析该文件。要使 .env 中的变量真正生效,必须借助第三方库(如 django-environ)显式加载,并确保加载时机正确、路径准确、值被合理引用。
安装依赖
pip install django-environ
在 settings.py 中初始化环境读取
在 BASE_DIR 定义之后、任何使用环境变量之前(推荐紧接其后),添加以下代码:
import os import environ # 初始化 environ 实例 env = environ.Env() # 从项目根目录下的 .env 文件读取变量(注意:路径需准确) environ.Env.read_env(os.path.join(BASE_DIR, '.env'))
⚠️ 注意:os.path.join(BASE_DIR, '.env') 是标准做法;若 .env 位于其他位置(如与 manage.py 同级),请相应调整路径,例如 os.path.join(BASE_DIR, '..', '.env'),并确保路径存在且可读。
安全读取变量并设置默认值
使用 env('KEY', default='fallback') 或 os.environ.get() 均可,但推荐 env() ——它支持类型转换(如 env.bool('DEBUG', default=False))和更清晰的错误提示:
DEBUG = env.bool('DEBUG', default=False)
SECRET_KEY = env('SECRET_KEY', default='insecure-key-for-dev')
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': env('DB_NAME'),
'USER': env('DB_USER'),
'PASSWORD': env('DB_PASSWORD'),
'HOST': env('DB_HOST', default='localhost'),
'PORT': env.int('DB_PORT', default=5432),
}
}在 settings.py 底部临时添加:
print("✅ Loaded DB_NAME:", env('DB_NAME', default='[NOT SET]'))
print("✅ DEBUG is:", DEBUG)启动服务时观察终端输出,确认值符合预期。
完成上述配置后,每次修改 .env 文件,只需彻底重启 Django 开发服务器,新值即可即时生效——无需额外缓存清理或复杂钩子。
上一篇:漫画台反馈提交方法详解
下一篇:Win7网络连接故障解决方法
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9