Django:SECRET_KEY的环境变量不起作用

时间:2016-02-05 22:20:44

标签: django

我的SECRET_KEY = os.environ['SECRET_KEY']中有prod.py,而我的.bashrc中有SECRET_KEY=secret_string

这将导致502错误,但是如果我设置SECRET_KEY="secret_string",它就会起作用。如何使用环境变量来执行此操作?

我正在通过sudo service gunicorn restart开始使用gunicorn,我有一个新手脚本。

以下是cat /proc/<PID>/environ的输出:

PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin^@TERM=linux^@UPSTART_JOB=gunicorn^@UPSTART_INSTANCE=^@

2 个答案:

答案 0 :(得分:5)

你需要这样做:

export SECRET_KEY=secret_string

.bashrc中。如果您这样做:

SECRET_KEY=secret_string

它仅在当前进程中可用,但是当您运行django server / shell时,子进程不知道此变量。 export也使变量在子进程中可用。

答案 1 :(得分:3)

.bashrc仅影响bash登录shell。初始脚本不会受到任何影响。

您应该将export SECRET_KEY=...行复制到初始化脚本的顶部。