[英]Python, Django - Accessing Environment Variables in settings.py
在我的项目中,我想用 python/Django 发送一封电子邮件。 为此,我需要指定多个设置,其中之一是我的电子邮件密码。 我想从环境变量中检索它。
当我在 settings.py 中引用环境变量时,我收到一条消息,暗示该值错误,而不是我的实际密码。 我确保在 bash_profile 中将环境变量设置为我的实际密码,并且当我在设置文件中硬编码我的密码时,电子邮件发送成功。
这意味着在尝试将密码作为环境变量检索时会出现问题。
设置.py :
import os
# me trying to retrieve password
EMAIL_HOST_PASSWORD = os.environ.get('email_password')
有人知道这个问题吗? 谢谢你。
我确保在 bash_profile 中将环境变量设置为我的实际密码
如果您遵循最佳实践并在虚拟环境中运行 Django,则它具有一组不同的环境变量。 我怀疑如果您将设置更改为os.environ['email_password']
您会收到KeyError
,因为该环境变量未设置。
有多种导出环境变量的方法,但只是为了向自己证明这是问题所在,在启用虚拟环境的情况下直接在命令行中导出值,然后运行您的项目并尝试发送电子邮件。
编辑
由于您使用的是 pipenv,您只需在项目的根目录中添加一个 .env 文件,当您激活虚拟环境时,pipenv 将自动为您设置这些环境变量。
.env
SECRET_KEY=asolidsecretkey
email_password=somesecurepassword
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.