如何通过 python-decouple 使用不同的 .env 文件
How to use different .env files with python-decouple
我正在开发一个 django 项目,我需要 运行 它与 Docker。在这个项目中我有多个 .env 文件:.env.dev, .env.prod, .env.staging.有没有一种正确的方法可以使用包 python-decouple 来管理所有这些文件?我一直在寻找应对这一挑战的解决方法,但没有找到任何答案,甚至在 official documentation.
上也找不到
我可以使用类似的东西吗:
# dont works that way, it's just a dummie example
python manage.py runserver --env-file=.env.prod
或者有什么方法可以设置或覆盖我需要使用的文件?
不是导入 decouple.config 并执行通常的 config('SOME_ENV_VAR')
,而是使用 RepositoryEnv('/path/to/.env.prod')
.
创建一个新的 decouple.Config
对象
from decouple import Config, RepositoryEnv
DOTENV_FILE = '/home/user/my-project/.env.prod'
env_config = Config(RepositoryEnv(DOTENV_FILE))
# use the Config().get() method as you normally would since
# decouple.config uses that internally.
# i.e. config('SECRET_KEY') = env_config.get('SECRET_KEY')
SECRET_KEY = env_config.get('SECRET_KEY')
我正在开发一个 django 项目,我需要 运行 它与 Docker。在这个项目中我有多个 .env 文件:.env.dev, .env.prod, .env.staging.有没有一种正确的方法可以使用包 python-decouple 来管理所有这些文件?我一直在寻找应对这一挑战的解决方法,但没有找到任何答案,甚至在 official documentation.
上也找不到我可以使用类似的东西吗:
# dont works that way, it's just a dummie example
python manage.py runserver --env-file=.env.prod
或者有什么方法可以设置或覆盖我需要使用的文件?
不是导入 decouple.config 并执行通常的 config('SOME_ENV_VAR')
,而是使用 RepositoryEnv('/path/to/.env.prod')
.
decouple.Config
对象
from decouple import Config, RepositoryEnv
DOTENV_FILE = '/home/user/my-project/.env.prod'
env_config = Config(RepositoryEnv(DOTENV_FILE))
# use the Config().get() method as you normally would since
# decouple.config uses that internally.
# i.e. config('SECRET_KEY') = env_config.get('SECRET_KEY')
SECRET_KEY = env_config.get('SECRET_KEY')