Каковы хорошие примеры вещей, которые должны быть превращены в приложения Django? - PullRequest
2 голосов
/ 19 августа 2010

Я заметил, что существует много путаницы в том, что означает "приложение" в Django, в немалой степени из-за того, что документация объясняет эту абстрактную концепцию более абстрактно.(http://docs.djangoproject.com/en/dev/intro/tutorial01/)

Какие есть конкретные примеры вещей, которые следует превратить в приложения?

Ответы [ 4 ]

1 голос
/ 19 августа 2010

Я думаю, что «приложение» Django - это функция высокого уровня сайта. Скажем, есть сайт, который предлагает форумы, чат, FAQ и галерею изображений. Я бы создал отдельное приложение Django для каждой из этих 4 функций. Каждое приложение может иметь, но не обязательно должно иметь свои собственные Модели, Представления, Шаблоны (и, возможно, промежуточное программное обеспечение и другие вещи), которые тесно связаны и служат одной цели высокого уровня.

Вот как бы я это объяснил.

0 голосов
/ 21 августа 2010

Этот разговор Джеймса Беннетта должен ответить на все ваши вопросы:)

0 голосов
/ 19 августа 2010

В настоящее время я создаю распределенное приложение, используя Python / Django. Любой конкретный сервер должен будет ссылаться на основной набор возможностей, а также конкретные возможности для его ситуации. Некоторые части будут нуждаться в полной системе модель-представление-шаблон, другие просто должны будут делиться моделями. Одна часть приложения будет использовать базу данных в памяти, в то время как остальная часть приложения использует базу данных корпоративного класса.

Я решил структурировать это приложение как набор «приложений», которые можно включать или выключать с помощью «умных» сценариев settings.py и urls.py. «Базовое» приложение будет иметь только модели, которые являются общими для всего приложения (но не будут иметь представления или шаблоны). Приложение «webcore» добавит представления и шаблоны, которые являются общими для всех приложений, предоставляющих веб-интерфейс. Другие приложения будут иметь свои собственные модели, а также соответствующие представления и шаблоны. Некоторые приложения будут реализовывать только фоновые службы, поэтому им не понадобятся представления или шаблоны.

Комбинируя несколько приложений в скриптах settings.py и urls.py, я могу создавать и тестировать небольшие части приложения, не сталкиваясь со сложностью всего приложения. Я также могу распределять части приложения на несколько серверов (для масштабирования или использования уникальных ресурсов). Если бы я создавал это приложение, используя одно «приложение», я бы потерял большую гибкость.

0 голосов
/ 19 августа 2010

Всего django.contrib. См. http://docs.djangoproject.com/en/dev/ref/contrib/ для объяснения того, что делает каждое приложение.

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

...