Django: лучше ли импортировать переменные из файла settings.py или файла базовой конфигурации? - PullRequest
4 голосов
/ 13 января 2012

Мне было интересно, лучше ли импортировать переменные в ваше представление из файла settings.py? или лучше создать файл конфигурации с нужными переменными?

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

.configrc

[awesomeVariables]
someMagicNumber = 7

views.py

from ConfigParser import SafeConfigParser
#Open and parse the file
config = SafeConfigParser()
config.read(pathToConfig)
#Get variable
magicNumber   = config.get('awesomeVariables', 'someMagicNumber'))

Однако , я заметил, что некоторые программисты предпочитают следующее:

settings.py

SOME_MAGIC_NUMBER=7

views.py

import settings
magicNumber = settings.SOME_MAGIC_NUMBER

Мне было интересно узнать о плюсах и минусах разных методов? Может ли импорт переменных непосредственно из ваших настроек нарушить целостность архитектуры?

Ответы [ 3 ]

5 голосов
/ 13 января 2012

Это суждение.Использование модуля настроек - это «путь Джанго», хотя вы должны сделать from django.conf import settings; settings.MY_SETTING, что будет соответствовать DJANGO_SETTINGS_MODULE.Но Django - это просто Python;нет ничего, что помешает вам использовать ConfigParser.В интересах иметь только одно место, где такие вещи определены, я бы рекомендовал поместить его в файл настроек Django - но если у вас есть причина не делать этого, не делайте этого.

1 голос
/ 14 января 2012

Там также есть приложение для динамического хранения настроек в БД.Может быть, вы найдете это полезным. Джанго-боденском

1 голос
/ 14 января 2012

Использование файла конфигурации совершенно не-Django. Настройки идут в settings.py. Период. Для специфичных для приложения настроек вы просто устанавливаете значение по умолчанию в своем приложении и позволяете пользователю переопределять его в настройках своего проекта.py:

from django.conf import settings

SOME_MAGIC_NUMBER = settings.SOME_MAGIC_NUMBER if hasattr(settings, 'SOME_MAGIC_NUMBER') else 0
# Where `0` is the default value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...