Вы должны сохранять свои настройки модульным способом. Под этим я подразумеваю распространение ваших настроек по нескольким файлам.
Например, у вас может быть base_settings.py
для хранения всех ваших базовых настроек; dev_settings.py
для ваших настроек сервера развития; и, наконец, prod_base_settings.py
для всех производственных параметров. Все настройки, не базовые файлы будут импортированы все базовые настройки, а затем изменить только то, что необходимо:
# base_settings.py
...
# dev_settings.py
from base_settings import *
DEBUG = TRUE
...
# prod_base_settings.py
from base_settings import *
DEBUG = FALSE
...
Такой подход позволяет иметь различные настройки из различных установок. Вы также можете передать все эти файлы, кроме того, на производственном сервере вы можете создать фактический файл настроек производительности prod_settings.py
, где вы укажете все чувствительные настройки. Этот файл не должен быть совершено в любом месте и его содержание храниться в безопасном месте:
# prod_settings.py
from prod_base_settings import *
SECRET_KEY = 'foo'
Как для имен файлов, которые вы можете использовать любые имена файлов, вы чувствуете, являются подходящими. Лично я на самом деле создать пакет Python для настройки, а затем сохранить различные параметры внутри пакета:
project/
project/
settings/
__init__.py
base.py
dev.py
...
app1/
models.py
...
app2/
models.py
...
Для linux: http://unix.stackexchange.com/questions/21598/how-do-i-set-a-user-environment-variable-permanently-not-session. В моем примере выше вы добавляете 'export secret_KEY = 'ABABABABABDSFJKEWLSK'' в свои' .bash_profile', '.bash_login' или' .profile' - в зависимости от того, какие существуют. –
Я переместил свой секретный ключ в .bash_profile и использовал os.environ.get, и он полностью сломал мой сайт, хотя 'echo $ SECRET_KEY' работал нормально. – swizzard
Это плохо для безопасности: переменные среды процесса могут быть прочитаны другими пользователями. –