【发布时间】:2019-07-10 08:10:56
【问题描述】:
在我的 settings.py 中,我像这样使用 django-environ:
import os
import environ
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
env = environ.Env(
SECRET_KEY=str,
)
env_path = os.path.join(BASE_DIR, '.env')
environ.Env.read_env('.env')
SECRET_KEY = env('SECRET_KEY')
我的 .env 文件如下所示
SECRET_KEY = ******************
但是,当我运行应用程序时,我得到了
django.core.exceptions.ImproperlyConfigured:设置 SECRET_KEY 环境变量
.env 文件被找到并且正在从中读取行,所以找到它没有问题,但不知何故它不起作用。
在跟踪执行线程时,我发现用于解释 .env 行的正则表达式没有返回任何内容
环境/环境.py
for line in content.splitlines():
m1 = re.match(r'\A(?:export )?([A-Za-z_0-9]+)=(.*)\Z', line)
if m1:
key, val = m1.group(1), m1.group(2)
m2 = re.match(r"\A'(.*)'\Z", val)
if m2:
val = m2.group(1)
m3 = re.match(r'\A"(.*)"\Z', val)
if m3:
val = re.sub(r'\\(.)', r'\1', m3.group(1))
cls.ENVIRON.setdefault(key, str(val))enter code here
re.match(r'\A(?:export )?([A-Za-z_0-9]+)=(.*)\Z', line) 没有返回
我错过了什么吗?
【问题讨论】:
-
env.str('SECRET_KEY')
-
@DavitTovmasyan 它返回相同的异常