Пространство имен конфигурации уровня приложения TurboGears 2.x

Исходя из опыта работы с Django, я привык к фреймворку, обеспечивающему механизм конфигурации, который подходит (и предназначен) для конфигурации уровня приложения, а не только для конфигурации фреймворка.

Шаблон TurboGears 2.x включает модуль <app_module>.config.app_cfg, который можно переопределить с помощью ini-файлов развертывания; однако это явно задокументировано как относящееся к "специфическим для TG2" настройкам, и я не вижу никаких задокументированных соглашений об именах или механизма пространства имен, которые предотвратили бы конфликт записи конфигурации, которую я придумал для моего приложения, с новыми добавленными настройками. к другим компонентам фреймворка в будущем.

Предоставляет ли TurboGears 2.x или включает ли набор общепринятых передовых практик для разработчиков TG2 (вставка и т. Д.) Какой-либо механизм управления конфигурацией для приложений, построенных на TG2, не относящийся к самому TG2? Если повторное использование механизма конфигурации TG2 является обычным, существует ли какая-либо общепринятая практика для управления пространством имен конфигурации?


person Charles Duffy    schedule 04.03.2012    source источник


Ответы (1)


config в TurboGears2 поддерживает сложные структуры, например, вы можете объявить параметры своего приложения внутри myapp.option1 myapp.option2 и так далее. Они будут доступны внутри вашего приложения как tg.config['myapp.option1'] и tg.config.myapp.option1.

Так вы избежите столкновений.

Параметры можно установить как в development.ini, так и в config.app_cfg.

Например, если вы поместите внутрь своего app_cfg

base_config['myapp.option1'] = 'FOOBAR'

строка FOOBAR будет доступна с tg.config.myapp.option1

Обратите внимание, что объект base_config перезаписывает параметры, загруженные из файла конфигурации .ini.

person amol    schedule 14.03.2012