首页 > 解决方案 > django-environ 和 python-decouple 之间的区别?

问题描述

在这里我习惯django-environ设置环境变量,但它给了我SECRET_KEY错误。如何正确配置环境变量?

我也使用了python-decouplefor this 而不是django-environwhich 可以正常工作但不能与django-environ.

django-environpython-decouplewhich will be best for this和有什么不一样?

设置

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:设置 SECRET_KEY 环境变量

标签: djangopython-decouple

解决方案


django-environ工作正常,但您需要加载.env文件 - 只是实例化 anEnv不会这样做:

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

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

此外,我发现基于 DEBUG 值(仅在开发时必须为真)具有“合理的默认值”是一个有用的习惯用法:

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

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


推荐阅读