Что такое приложения Django - PullRequest
       21

Что такое приложения Django

1 голос
/ 02 сентября 2011

Я хочу переключиться с Rails на Django, чтобы расширить свой кругозор, и у меня возник вопрос:

Мое приложение на Rails довольно беспорядочное, поскольку мой подход к разработке на основе хоббизалатать один.Я видел очень рано, что Django разделился между проектом и приложением.Согласно их сайту, проект состоит из множества приложений, и одно приложение может использоваться для многих проектов.

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

Насколько велико / мало такое приложение?Могут ли они / должны тесно взаимодействовать?

Например, разумно ли иметь одно приложение для работы с профилями пользователей, а другое - для сообщений в блогах и комментариев от этих пользователей?(На моем сайте у пользователя может быть несколько блогов с разными профилями).Или они предназначены для другого использования?

Ответы [ 4 ]

6 голосов
/ 02 сентября 2011

Приложение django - причудливое название для пакета python . На самом деле, это все. Единственное, что отличает приложение django от других пакетов python, это то, что имеет смысл отображать его в списке INSTALLED_APPS в settings.py, потому что оно содержит такие вещи, как шаблоны, модели или другие функции, которые могут быть автоматически обнаруженный другими особенностями Django.

Хорошее приложение django будет делать только одно, делать это хорошо и не быть тесно связанным с любым другим приложением, которое может его использовать. Django предоставляет широкий спектр приложений в пространстве имен contrib, которые следуют этому соглашению.

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

1 голос
/ 02 сентября 2011

Цель использования приложений - сделать их многоразовыми.Джанго нравится DRY principle DRY означает DO NOT repeat yourself

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

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

Вы можете, например, создать приложение для пользователей, приложение для продаж, приложение для комментариев, приложение длястатьи.Будет проще поддерживать ваш код, и если вы все сделали правильно, вы можете использовать приложение в других project с небольшими (если таковые имеются) изменениями в приложении.

ProjectСборник app х.Приложение для пользователей, приложение для статей, приложение для комментариев могут объединиться в проект или, другими словами, в веб-сайт.

Если вы хотите изучать джанго, я предлагаю вам проверить:

http://www.djangobook.com/

http://docs.djangoproject.com/


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

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

Документация, учебные пособия - ваш лучший друг.

Удачи.

0 голосов
/ 02 сентября 2011

Портал = Проект Django

Рекламная система, галерея фотографий, каталог товаров = Приложения

0 голосов
/ 02 сентября 2011

Проект - это, по сути, место, где ваш проект живет ... в своем проекте вы устанавливаете свои URL, настройки проекта и т. Д.

Приложение определяет свои собственные модели данных и представления, которые будут использоваться в проекте.,Вы можете перемещать их между проектами, если хотите.

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

...