首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将smtp详细信息的.env文件连接到django

无法将smtp详细信息的.env文件连接到django
EN

Stack Overflow用户
提问于 2021-02-25 15:56:47
回答 2查看 94关注 0票数 1

settings.py

电子邮件_BACKEND = 'django.core.mail.backends.smtp.EmailBackend‘电子邮件_HOST =os.environ.get(‘电子邮件_主机‘)电子邮件_主机_用户=os.environ.get(‘电子邮件_主机_用户‘)电子邮件_使用_TLS =真实电子邮件_端口= 587电子邮件_主机_密码=os.environ.get(‘电子邮件_主机_密码‘)

1. .env

导出电子邮件_主机_PASSWORD=<>导出电子邮件_主机_用户= <>导出电子邮件_HOST=<>

3.Termial

(Carealenv) E:\atom data\mywebsite>source .env 'source‘未被识别为内部或外部命令、可操作程序或批处理文件。

我遇到SMTPserverdisconnected错误..请先运行连接,我想将我的.env文件连接到django,这样SMTPServer就可以连接了,我可以向用户发送验证电子邮件。这将是很大的帮助..谢谢你

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-25 16:52:29

根据ruddra的回答,您可以选择使用python-dotenv..。

pip install python-dotenv然后在你的settings.py中

代码语言:javascript
复制
# settings.py
from dotenv import load_dotenv
load_dotenv()

然后,您可以使用getenv或者就像您在示例中所做的那样environ.get函数从内置的os模块获取环境变量,并在环境变量不存在时提供默认值。

代码语言:javascript
复制
from os import getenv

EMAIL_HOST = getenv('EMAIL_HOST', 'localhost')

其中localhost是您希望设置为默认值的任何内容。

票数 2
EN

Stack Overflow用户

发布于 2021-02-25 16:17:28

你不能使用source在Windows计算机中,如Stackoverflow回答。

如果你想使用.env文件,可以考虑使用像这样的库`django-environ`它将直接读取文件,而不需要从ENVIRONMENT变量。

示例用法settings.py

代码语言:javascript
复制
import environ
env = environ.Env(
    # set casting, default value
    DEBUG=(bool, False)
)
# reading .env file
environ.Env.read_env()

# False if not in os.environ
EMAIL_HOST = env('EMAIL_HOST')

另一种替代解决方案是将Docker与docker-compose,您可以在其中加载来自file的环境变量..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66364477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档