【发布时间】:2016-09-10 05:12:53
【问题描述】:
我需要从我的数据库中获取EMAIL_HOST_USER、EMAIL_HOST、EMAIL_PORT 等电子邮件配置,然后将这些值传递给settings.py 文件中的电子邮件配置。这可能吗?如果是,我该怎么做?
【问题讨论】:
-
你不能这样做,因为 settings.py 是 django 加载来设置运行环境的第一件事。此时 Django 无法访问数据库。
-
在某些时候,我尝试创建一个自定义
EmailBacked以从数据库中获取值,但这没有用,但我不知道我是否做错了我的自定义EmailBackend或如果在自定义后端中无法完成,你知道一种方法来做我想做的事情吗? -
实现这一点还有很长的路要走,但不是通过 django。您不能使用 django 的任何部分或其功能,因为尚未加载 settings.py 文件。如果您愿意在 django 之外工作一点,我将继续研究它的方法(将涉及环境变量设置、使用 python 的自定义原始 SQL 查询,无论您的数据库是什么,它都可以直接使用 python)
-
我正在考虑在 init 中使用变量来存储我的查询结果并将该变量用作全局变量以便可以在
setting.py中使用它们,类似这样吗? -
是的,你当然可以做到。用python编写sql脚本,它们就可以正常工作了。只是不要使用任何与 django 相关的东西。
标签: python django django-settings