繁体   English   中英

Python、Django - 访问 settings.py 中的环境变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM