如何从 .env 中读取 django 项目的 settings.py 文件?

问题描述

我正在尝试在我的 django 项目中配置电子邮件环境设置。我正在使用 django-environ 包。我已粘贴此代码

EMAIL_CONfig = env.email_url('EMAIL_URL',default='smtp://user@:password@localhost:25')
vars().update(EMAIL_CONfig)

在我的 .env 文件中。但是当我运行服务器时出现错误提示

"django.core.exceptions.ImproperlyConfigured: Set the EMAIL_CONfig environment variable"

出了什么问题?

解决方法

我认为此设置不应该包含在您的 .env 中。这个文件应该是这样的

DEBUG=on
SECRET_KEY=your-secret-key
DATABASE_URL=psql://user:un-githubbedpassword@127.0.0.1:8458/database
SQLITE_URL=sqlite:///my-local-sqlite.db
CACHE_URL=memcache://127.0.0.1:11211,127.0.0.1:11212,127.0.0.1:11213
REDIS_URL=rediscache://127.0.0.1:6379/1?client_class=django_redis.client.DefaultClient&password=ungithubbed-secret

我猜您的设置(取自文档)应该在 settings.py 或自定义 email_config

中使用
EMAIL_CONFIG = env.email_url('EMAIL_URL',default='smtp://user@:password@localhost:25')
vars().update(EMAIL_CONFIG)

检查来自 django-environ 的安装和使用文档。