0

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

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")

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

4

1 回答 1

0

Django 的 SECRET_KEY 有许多围绕加密签名的用法。例如,这就是 cookie 的保护方式,或者 Django 如何确保隐藏的表单字段不被篡改。

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

于 2013-09-02T09:00:51.137 回答