Существует несколько возможных вариантов, не выходя за пределы INI-ограничений PasteDeploy. Однако, прежде всего, осознайте красоту модели файла INI - это базовая способность создавать несколько файлов с различными настройками/конфигурациями. Да, вы должны синхронизировать их, но они - просто настройки (без логики), так что это не должно быть непреодолимым.
В любом случае, PasteDeploy supports a default section, который унаследован разделами [app:XXX]
. Таким образом, вы можете размещать общие настройки там и иметь разные разделы [app:myapp-dev]
и [app:myapp-prod]
.
# settings.ini
[DEFAULT]
foo = bar
[app:myapp-dev]
use = egg:myapp
[app:myapp-prod]
use = egg:myapp
set foo = baz
Это может быть запущена через
env/bin/pserve -n myapp-dev settings.ini
Другой вариант заключается в использовании нескольких файлов конфигурации.
# myapp.ini
[app:myapp-section]
use = egg:myapp
foo = bar
# myapp-dev.ini
[app:main]
use = config:myapp.ini#myapp-section
foo = baz
# myapp-prod.ini
[app:main]
use = config:myapp.ini#myapp-section
Это может быть запущена через
env/bin/pserve myapp-prod.ini
Если вы не хотите использовать PasteDeploy (INI-файлы), вы можете сделать что-то в Python, но есть реальные преимущества этой конфигурации является простым.