web2py с конфигурацией для каждой среды

Поддерживает ли web2py стандартную конфигурацию для каждой среды (разработка, подготовка, производство и т. д.)? Что-то похожее на Grails и Ruby on Rails.

Я читал/просматривал официальную книгу, но ничего не нашел.


person jarekrozanski    schedule 30.05.2011    source источник


Ответы (1)


Разработчики web2py не считают это хорошим подходом.

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

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

Тем не менее, вы можете управлять различными средами и более изощренным способом, чем позволяют Rails или Django. Это потому, что модели не импортируются, а выполняются при каждом запросе. Вы добавляете свои собственные условия для обнаружения среды во время выполнения. Например:

  settings = dict()
  if request.env.http_host == 'http://127.0.0.1:8000'
       settings['development']=True
  else:
       settings['development']=False
  if settings['development']:
       db = DAL('sqlite://....')
  else:
       db = DAL('mysql://....')

Вы можете увидеть, как обобщить это на более сложные условия. Конечно, вы можете сделать settings['development']=True или False константой, что эквивалентно Rails.

person Massimo    schedule 30.05.2011
comment
Хорошо, так я делал это до сих пор. Напоминает мне о моих давно минувших временах PHP. Я по-прежнему предпочитаю четкое разделение среды, но так как это способ web2py, пусть будет так. - person jarekrozanski; 31.05.2011