无法将smtp详细信息的.env文件连接到django
Can't connect .env file of smtp details to django
- settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = os.environ.get('EMAIL_HOST')
EMAIL_HOST_USER = os.environ.get('EMAIL_HOST_USER')
EMAIL_USE_TLS = True
EMAIL_PORT = 587
EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_HOST_PASSWORD')
- .env
export EMAIL_HOST_PASSWORD=<>
export EMAIL_HOST_USER = <>
export EMAIL_HOST=<>
3.Termial
(Carealenv) E:\atom data\mywebsite>source .env
'source' is not recognized as an internal or external command,
operable program or batch file.
我遇到 SMTPserverdisconnected 错误..请先 运行 连接
我想将我的 .env 文件连接到 django,以便 SMTPServer 连接,我可以向用户发送验证电子邮件。这将是很大的帮助..谢谢
您不能按照 Whosebug 答案中所述在 Windows 机器中使用 source
。
如果你想使用 .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
一起使用,您可以在其中加载 environment variables from file.
除了 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 是您希望设置为默认值的任何内容。
- settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = os.environ.get('EMAIL_HOST') EMAIL_HOST_USER = os.environ.get('EMAIL_HOST_USER') EMAIL_USE_TLS = True EMAIL_PORT = 587 EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_HOST_PASSWORD')
- .env
export EMAIL_HOST_PASSWORD=<> export EMAIL_HOST_USER = <> export EMAIL_HOST=<>
3.Termial
(Carealenv) E:\atom data\mywebsite>source .env 'source' is not recognized as an internal or external command, operable program or batch file.
我遇到 SMTPserverdisconnected 错误..请先 运行 连接 我想将我的 .env 文件连接到 django,以便 SMTPServer 连接,我可以向用户发送验证电子邮件。这将是很大的帮助..谢谢
您不能按照 Whosebug 答案中所述在 Windows 机器中使用 source
。
如果你想使用 .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
一起使用,您可以在其中加载 environment variables from file.
除了 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 是您希望设置为默认值的任何内容。