【问题标题】:Multiple settings files多个设置文件
【发布时间】:2013-09-05 06:53:53
【问题描述】:

我正在尝试将多个设置文件应用于我的项目。我正在关注基本的两篇文章:

1 http://www.rdegges.com/the-perfect-django-settings-file/

2 两勺 Django:Django 1.5 的最佳实践 https://github.com/twoscoops/django-twoscoops-project

我有两个问题:

1) 我了解将密钥和 aws 密钥等文件排除在设置之外非常重要。在 github 上的 pydanny 示例中,我发现了这个

SECRET_KEY = r"{{ secret_key }}"

我在本地使用它,即使我的环境变量(bashrc、配置文件或 virtualenvs)上没有密钥,它也可以通过。

这个 SECRET_KEY = r"{{ secret_key }}" 是如何工作的?

2) 在我创建了我的设置文件夹之后。还创建了 init.py 和我的基本、本地、临时和生产设置文件。我注意到一些子命令像 collectstatic 一样消失了。我必须将我的 manage.py 更改为 local 或 base 才能再次看到它们。

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings.local")

为什么这适用于基本和本地设置,但不适用于生产?

【问题讨论】:

    标签: django settings


    【解决方案1】:

    Django 的 SECRET_KEY 有很多围绕cryptographic signing 的用法。例如,这就是 cookie 的保护方式或 Django 确保隐藏的表单字段不被篡改的方式。

    manage.py runserver 是您应该在生产中使用的开发服务器:您可能在那里使用 WSGI:修改 manage.py 不会做任何事情。

    【讨论】:

    • 谢谢...我以为 r"{{ secret_key }}" 叫什么...我的错。
    • @user227719 :) 这是一个原始字符串,例如,“\n”实际上表示“\”和“n”,而不是“换行符”。
    猜你喜欢
    • 2012-12-22
    • 2011-04-05
    • 1970-01-01
    • 2013-04-25
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多