我将我的密钥更改为我的Heroku应用程序上的环境变量。我改变了它,因为我发现保留settings.py
中的密钥是一种安全风险。
但是,现在当我使用python manage.py runserver
时,它不会在本地工作。它给出了关于密钥的错误。
如何修复它以便我可以在本地开发我的Heroku应用程序?
答案 0 :(得分:3)
您可以在本地将密钥导出为环境变量。
export SECRET_KEY=mysecretkey
./manage.py runserver
或者您可以在DEBUG模式下更改settings.py
以使用硬编码的密钥。如果您这样做,请确保您在Heroku上运行DEBUG = False
。
import os
if DEBUG:
SECRET_KEY = 'mysecretkey'
else:
SECRET_KEY = os.environ['SECRET_KEY']
答案 1 :(得分:2)
您必须在开发环境中设置环境变量。
<强>窗强>
转到计算机&gt;属性&gt;高级系统设置。
转到高级标签,底部有一个环境变量... 按钮。
在那里,您可以根据需要编辑变量。
<强>的Linux 强>
修改/etc/environment
以包含:
SECRET_KEY = <yoursecretkey>
或
您应该使用虚拟环境将系统Python安装与不同项目隔离(它解决了冲突的版本要求)并使部署更容易。 Virtualenv Tutorial
要在使用虚拟环境时激活虚拟环境,有一个位于<your_virtualenv>/bin/activate
的shell脚本,用于处理更改使虚拟环境工作的所有环境变量。
添加:
SECRET_KEY='<yoursecretkey>'
export SECRET_KEY
到activate
文件的底部,当它运行时,它将添加(export
)环境变量。
答案 2 :(得分:0)
我也有点麻烦,在这里找到我的答案:Set up your local environment variables
如果您在本地使用heroku本地开发,这可能对您有用。我只需要将此行包含在放置在顶级目录中的.env文件中,并使用我的Procfile:
SECRET_KEY = 'yourkey'
在settings.py中:
os.environ.get('SECRET_KEY')
这对我很有用。否则,如果由于某种原因你没有使用本地的heroku,也许你可以尝试在本地工作时从另一个文件中导入你的密钥(并将此文件放在你的gitignore中),然后交换回heroku配置变量进行部署。 / p>