Создание распространяемого приложения django - PullRequest
4 голосов
/ 22 сентября 2009

В мире Java распространенным способом распространения веб-приложения является его упаковка вместе с Apache Tomcat. Каким образом можно добиться чего-то подобного с помощью Django (или любого другого приложения WSGI)?

Ответы [ 3 ]

5 голосов
/ 22 сентября 2009

В django есть два лагеря для распространения приложений. Это также зависит от того, что вы подразумеваете под apps .

  1. Если вы имеете в виду приложения в терминах django, как в «подключаемых приложениях», которые отделены от проекта, то было бы лучше использовать setuptools для упаковки этих «подключаемых приложений». Многие django «подключаемые приложения» распространяются следующим образом. Например:
  2. Но если вы имеете в виду, что приложения - это полноценные приложения (весь war-файл), как в терминах Java EE, то вы бы отключили все приложения внутри своего проекта и просто распространили проект в любых формах , Обычно вы бы просто застегнули молнию. Вам не нужно устанавливать его с помощью setuptools или чего-либо еще, поскольку вы запускаете свой проект из папки проекта. Примеры в этом лагере:

Первый способ удобен, если у вас уже запущен проект django, и вы хотите повторно использовать эти подключаемые приложения во многих других проектах. Это действительно хорошо, если вы создаете немонолитное веб-приложение или собственное приложение / веб-сайты или повторно используемое приложение. Это также удобно, если вы сами управляете своим проектом и этими подключаемыми приложениями. Это в некоторой степени неудобно (в некоторой степени), если вы хотите продавать приложения клиенту с таким подходом, потому что ваш проект и подключаемые приложения находятся в разных каталогах. Некоторые люди сказали, что у них нет проблем с этим подходом.

Второй способ будет более удобным, если вы продаете свои приложения клиенту, поскольку все приложения находятся внутри вашего проекта, и вы извлекаете свой проект только тогда, когда находитесь на стороне клиента. Этот стиль чаще называют монолитным стилем. Java EE и Ruby on Rails имеют монолитный стиль развертывания. Вам не нужно устанавливать «подключаемые приложения» один за другим (при условии, что вы не используете внешние подключаемые приложения в своем проекте), когда находитесь на стороне клиента. Но, опять же, у вас могут возникнуть проблемы, если вы захотите использовать эти небольшие приложения внутри проектов. Если вы не планируете повторно использовать эти небольшие приложения, то этот способ достаточно хорош.

2 голосов
/ 22 сентября 2009

setuptools - это распространенный способ распространения любых пакетов Python, включая приложения Django, и многие из наиболее значительных приложений Django (на ум приходит Pinax ) либо распространяются через 1005 * cheeseshop или в виде tarballs или zip с файлами setup.py, созданными программой setuptools.

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

0 голосов
/ 22 сентября 2009

Приложение django мало чем отличается от модуля python, который вы можете упаковать с помощью setuptools.

Python
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...