django - 如何将 Django key 设置为环境变量

标签 django environment-variables django-settings

我的Django项目的 key 包含特殊字符,例如#@^*等。我试图将其设置为 /etc/environment 中的环境变量。

我在文件中包含以下内容:

export SECRET_KEY='zotpbek!*t_abkrfdpo!*^@#plg6qt-x6(%dg)9p(qoj_r45y8'

即我在字符串周围添加了单引号,因为它包含特殊字符(也由 this SO post 规定)。我退出文件并执行source/etc/environment。接下来,我在终端中输入 env:SECRET__KEY 正确显示。

我注销并重新登录。我再次输入 env

这次 SECRET_KEY 仍然显示,但在 @ 字符之外被截断。它排除了 # 字符之外(并包括)的所有内容。

如何解决这个问题?尝试使用双引号也没有缓解任何问题。我的操作系统是 Ubuntu 14.04 LTS。


附:我知道环境变量不支持访问控制;有很多理由不将 Django key 设置为环境变量。出于这个问题的目的,让我们把它放在次要位置。

最佳答案

这本身不是 Django 问题。根据这个问题Escape hash mark (#) in /etc/environment不能/etc/environment中使用“#”。

我建议您继续重新生成您的 key ,直到获得一个没有 #s 的 key ——这应该可以解决问题。 Django Extensions为此有一个命令generate_secret_key。更改 key 的副作用​​是当前 session 将变得无效,也就是说,除非您在应用程序中的其他地方使用它。

关于django - 如何将 Django key 设置为环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46345036/

相关文章:

python - 在 Heroku 上找不到 Django 静态文件(带有白噪声)

python - 尝试在 djangoFramework 项目上运行 python manage.py migrate 但收到错误

go - 如何设置 GOPRIVATE 环境变量

django - 使用 DEBUG=False,如何将 django 异常记录到日志文件中

Django:缩小 HTML 以提高页面加载速度的最佳实践

angularjs - 如何将 ENV 变量的值注入(inject)到 Angular 模板中?

java - “javac”无法识别

非 Debug模式下的 Django Whitenoise 500 服务器错误

python - 如何分发 Django 应用程序及其特定设置?

django - 无法在 OS X Mavericks 上启动 Celery