使用 DJANGO_SETTINGS_MODULE 时如何导入设置?
Posted
技术标签:
【中文标题】使用 DJANGO_SETTINGS_MODULE 时如何导入设置?【英文标题】:How do I import settings when using DJANGO_SETTINGS_MODULE? 【发布时间】:2021-05-27 23:37:55 【问题描述】:我有一个 Django 项目,并且正在使用 DJANGO_SETTINGS_MODULE 来管理每个环境设置。我为每个环境创建了不同的设置文件,但是,我很困惑如何在不更改代码中的导入的情况下访问这些设置。比如我有这个设置目录结构:
stats/
config/
settings/
__init__
base.py
dev.py
prod.py
base.py
拥有我所有的默认设置,包括一些用于第三方服务的 API 密钥。我在每个环境中覆盖这些:
base.py
API_KEY = "default"
dev.py
from base import *
API_KEY = "dev"
prod.py
from base import *
API_KEY = "prod"
当我启动我的服务器时,我使用
./manage.py runserver --settings=stats.config.settings.dev
但是我如何访问API_KEY
而不必在每次部署时将“dev”更改为“prod”?这就是我目前在我的代码中访问API_KEY
的方式:
from stats.config.settings.dev import API_KEY
我似乎无法在任何地方找到正确的答案。谢谢!
【问题讨论】:
【参考方案1】:You access your settings via django.conf.settings
,你不应该直接导入/访问它们
from django.conf import settings
settings. API_KEY
【讨论】:
啊,我在设置不同环境的过程中读到了这一点,但并没有完全将两者联系起来。我测试了它并且它正在工作。谢谢!以上是关于使用 DJANGO_SETTINGS_MODULE 时如何导入设置?的主要内容,如果未能解决你的问题,请参考以下文章
Django“未配置设置”错误,无法定义环境变量 DJANGO_SETTINGS_MODULE
在 virtualenv 下设置 DJANGO_SETTINGS_MODULE?
DJANGO_SETTINGS_MODULE - 未加载指定的设置文件?
django.setup(): ModuleNotFoundError: 设置 DJANGO_SETTINGS_MODULE 时没有名为“api.apps”的模块