Это когда-либо вежливо для помещения кода в конфигурационный файл Python?

, но в общем случае представляется целесообразным включать все файлы с "git add .", за исключением некоторых файлов, упомянутых в .gitignore

. Что я обычно делаю при наборе [ 113] следует с git status.

Если я вижу, что добавлено слишком много файлов (потому что мои .gitignore были недостаточно точными), я перезагружаюсь, изменяю .gitignore, снова добавляю и снова контролирую со статусом git.

git reset
# edit .gitgignore
git add .
git status

Как только статус удовлетворительный, я обязуюсь.

9
задан Adam Davis 27 March 2009 в 15:41
поделиться

5 ответов

Существует страница Wiki Django, которая обращается точно к вещи, которую Вы спрашиваете. http://code.djangoproject.com/wiki/SplitSettings

Не изобретать велосипед. Используйте configparser и файлы INI. Файлы Python к легкому для повреждения кем-то, кто не знает Python.

11
ответ дан 4 December 2019 в 10:05
поделиться

Ваша эвристика хороша. Правила сделаны так, чтобы границы были установлены и только повреждены, когда это - очевидно, значительно лучшее решение, чем альтернатива.

Однако, я не могу не задаться вопросом, что код проверки сайта должен быть в синтаксическом анализаторе, и дополнительный элемент конфигурации добавил, что выбирает, какой вариант должен быть выбран.

Я не думаю, что в этом случае альтернатива так плоха, что нарушение правил имеет смысл...

- Adam

4
ответ дан 4 December 2019 в 10:05
поделиться

Я думаю, что это - боль по сравнению с аргументом удовольствия.

Не неправильно поместить код в файл конфигурации Python, потому что это - весь действительный Python, но это действительно означает, что Вы могли смутить пользователя, который входит для реконфигурирования приложения. Если Вы - то, который волновал по поводу этого, веревка это прочь с комментариями, объясняющими примерно, что это делает и что пользователь не должен редактировать его, скорее редактировать settings_overrides.py файл.

Что касается Вашего примера, это находится почти на основе для разработчиков для тестирования, затем развертывают их приложения. Определенно больше удовольствия, чем боль. Но необходимо действительно сделать это вместо этого:

LOCALIZED = False

try:
    from settings_overrides import *
except ImportError:
    pass

И в Вашем settings_overrides.py файле:

LOCALIZED = True

... Если только прояснить, что делает тот файл.. Что Вы делаете там переопределения разделений в два места.

4
ответ дан 4 December 2019 в 10:05
поделиться

Настройки как код являются также угрозой безопасности. Вы импортируете свою "конфигурацию", но в действительности Вы выполняете любой код, находится в том файле. Поместите конфигурацию в файлы, которые Вы анализируете сначала, и можно отклонить бессмысленные или злонамеренные значения, даже если это - больше работы для Вас. Я вел блог об этом в декабре 2008.

1
ответ дан 4 December 2019 в 10:05
поделиться

Как общая практика, см. другие ответы на странице; все это зависит. Специально для Django, однако, я ничего не вижу существенно неправильно с написанием кода в settings.py файле..., в конце концов, файл настроек ЯВЛЯЕТСЯ кодом :-)

В документах Django о самих настройках говорится:

Файл настроек является просто модулем Python с переменными уровня модуля.

И дайте пример:

assign settings dynamically using normal Python syntax. For example:
MY_SETTING = [str(i) for i in range(30)]
1
ответ дан 4 December 2019 в 10:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: