我使用 Python 和 Django 创建 Heroku Web 应用程序,Heroku 在命令“git push heroku master”后给了我这个错误:ModuleNotFoundError: No module named 'dlist.secret_settings'
当尝试这样做时:
#settings.py
from .secret_settings import *
# from secret_settings.py import * doesn't work for some reason.
以下是secret_settings.py(与settings.py位于同一文件夹中)包含的内容:
#secret_settings.py
SECRET_KEY = 'string here'
问题是,当我在本地服务器上测试我的网络应用程序时(即http://127.0.0.1:8000/),但是当我将这些更改推送到 Heroku 时它不起作用。我想做的就是根据其他人的建议隐藏我的 SECRET_KEY,如您所见。我看过其他人的建议,但我似乎无法弄清楚,选择这种方法是因为它可以理解。非常令人沮丧。非常感谢初学者友好的答案/步骤。
我猜你已经将 Git 配置为忽略secret_settings.py
。这是我能想到创建单独文件的唯一原因。
Heroku 部署由 Git 提供支持。自从secret_settings.py
不被 Git 跟踪,它不会被推送到 Heroku。您可以将该文件添加到存储库中,但这会破坏首先拥有一个单独的未跟踪文件的目的。
解决方案是使用一个环境变量。这是在 Heroku 上得到良好支持.
In your settings.py
文件,设置你的SECRET_KEY
using os.getenv()像这样:
import os
SECRET_KEY = os.getenv('SECRET_KEY', 'Optional default value')
这告诉 Django 加载你的SECRET_KEY
从名为的环境变量设置SECRET_KEY
。如果不存在这样的环境变量,它将回退到可选的默认值。在您的开发机器上,使用默认值可能就可以了。
最后,设置SECRET_KEY
Heroku 上的环境变量。你可以通过运行来做到这一点heroku config:set SECRET_KEY="YOUR_SECRET_KEY_VALUE"在您的开发机器上,或通过 Heroku 的基于 Web 的仪表板。
Your secret_settings.py
不再需要文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)