Джанго Строй - PullRequest
       23

Джанго Строй

4 голосов
/ 07 июля 2010

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

Спасибо

Todd

Ответы [ 4 ]

4 голосов
/ 07 июля 2010

Обычно я настраиваю его так:

buildout_dir/
  + bootstrap.py
  + buildout.cfg
  + ...
  + <project_name>/
      + settings.py
      + templates/
      + media/
      + ...  

Поскольку сборка (в моем случае) часто так или иначе связана с одним проектом, я просто сохраню проект django непосредственно внутриЗастройка.Между прочим: я использую djangorecipe в моей конфигурации компоновки.

Приложения, которые я пишу, являются простыми яйцами и имеют такую ​​компоновку:

django-<app_name>/
  + setup.py
  + <app_name>/
      + __init__.py
      + models.py
      + ...

НоЯ также видел приложения, которые являются автономной компоновкой.Якоб Каплан-Мосс даже написал статью об этом .

1 голос
/ 29 января 2013

Я всегда создаю компоновку для каждого проекта, которая выбирает все необходимые зависимости.Это могут быть как простые яйца, так и внутренние зависимости от git (hub) с использованием mr.developer

. Я не вижу необходимости в сборке для каждого приложения.Вероятно, хорошо иметь соответствующий buildout.cfg для каждой конфигурации настроек django (например, разработка, производство и т. Д.)

Сборка просто применяется к папке проекта, зависимости автоматически включаются (и настраиваются при использовании mr.developer).

также, включая bootstrap.py, по моему мнению, немного старомодно;Я всегда запускаю virtualenv + pip install zc.buildout.Это также можно сделать в самой папке проекта или извне (например, ~ / virtualenvs / myproject-123)

1 голос
/ 05 апреля 2012

Для меня я даю каждому приложению и каждому проекту компоновку.Сборка проекта предназначена для настройки сайта.В том числе:

  • создание файла конфигурации apache / nginx (коллективный.recipe.template)

  • возможно, cronjob

  • возможно, супервизор, если вы хотите запустить отдельную оружейную кукурузу или около того.

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

Для меня buildout - это изоляция (как virtualenv) плюс установка (как pip)плюс автоматизация проекта.В основном вы будете использовать первые два приложения.И все три для сайта.

1 голос
/ 04 апреля 2012

У меня всегда есть как минимум две / три конфигурации сборки в корне проекта (сайта):

/
|- buildout.cfg    # contains bas configuration used by other cfg files
|- development.cfg # adds ton of eggs used only in development and generates manage script using djangorecipe 
|- production.cfg  # most of the time it contains versions and generates django script using djangorecipe
...