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就可以连接了,我可以向用户发送验证电子邮件。这将是很大的帮助..谢谢你
发布于 2021-02-25 16:52:29
根据ruddra的回答,您可以选择使用python-dotenv..。
pip install python-dotenv然后在你的settings.py中
# settings.py
from dotenv import load_dotenv
load_dotenv()然后,您可以使用getenv或者就像您在示例中所做的那样environ.get函数从内置的os模块获取环境变量,并在环境变量不存在时提供默认值。
from os import getenv
EMAIL_HOST = getenv('EMAIL_HOST', 'localhost')其中localhost是您希望设置为默认值的任何内容。
发布于 2021-02-25 16:17:28
你不能使用source在Windows计算机中,如Stackoverflow回答。
如果你想使用.env文件,可以考虑使用像这样的库`django-environ`它将直接读取文件,而不需要从ENVIRONMENT变量。
示例用法settings.py
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的环境变量..。
https://stackoverflow.com/questions/66364477
复制相似问题