django-environ 和 python-decouple 之间的区别?

Difference between django-environ and python-decouple?

这里我使用了django-environ来设置环境变量,但是它让我SECRET_KEYerror.How正确配置环境变量?

我也为此使用了 python-decouple 而不是 django-environ,它工作正常但不适用于 django-environ

django-environpython-decouple 之间的区别是什么?

设置

import environ
env = environ.Env()

SECRET_KEY = env('SECRET_KEY')
DEBUG = env.bool("DEBUG", False)

.env 文件

DEBUG = True
SECRET_KEY = #qoh86ptbe51lg0o#!v1#h(t+g&!4_v7f!ovsl^58bo)g4hqkq #this is the django gives 

使用 django-environ 时出现此异常

django.core.exceptions.ImproperlyConfigured: Set the SECRET_KEY environment variable

django-environ 工作正常,但您需要加载 .env 文件——仅仅实例化一个 Env 并不能做到这一点:

import environ
env = environ.Env()
env.read_env()

SECRET_KEY = env('SECRET_KEY')
DEBUG = env.bool("DEBUG", False)

此外,我发现 "sane defaults" 基于 DEBUG 值(必须仅在开发时为真)是一个有用的习语:

DEBUG = env.bool("DEBUG", False)
SECRET_KEY = env('SECRET_KEY', default=('insecure' if DEBUG else Env.NOTSET))

Env.NOTSET 设置为默认值将使 django-environ 抱怨未设置的值。