Antonchik
@Antonchik
Программирую на HTML

Объясните суть приложений в django?

Здравствуйте, изучаю django, и как я понимаю в проекте может быть несколько приложений, не могли бы вы навести пример какого-то проекта где используются несколько приложений, и ответить мне на вопрос могут ли эти приложения быть как-то связаны между собою, к примеру общая модель или общая вьюшка, и где в таком случаи хранить их?
  • Вопрос задан
  • 1176 просмотров
Пригласить эксперта
Ответы на вопрос 3
tema_sun
@tema_sun
Например так:
Проект - это сайт целиком.
Блог - это приложение.
Форум - это приложение.
Фотогалерея - это приложени. Ну и так далее.

Они могут быть связаны между собой. Например, пользователи для форума и блога могут быть одними и теми же.
Общая вьюшка - не могу сходу придумать зачем это. Общие модели - конечно. Модели хранить в соответсвующих приложениях, и связывать их через foreign key, если нужно.
Ответ написан
@deliro
Вопрос хороший. Когда-то я задавался таким же. И пришёл к выводу, что буду выделять в аппы только reusable apps, то есть, приложения не должны иметь связей за пределами себя (не считая юзера). Выделял такие приложения, как чат, генератор капчи и т.д., а всё остальное хранил в аппе с многозначительным названием core.

В один прекрасный день, в одном прекрасном проекте с этим самым аппом core оказалось примерно 30 моделей и почти сотня вьюх. Было принято решение раздробить модели и вьюхи на подмодули (вместо файла views.py была создана папка с файлом __init__.py и другими файлами по категориям этих самых вьюх, то же с моделями). Вот тут-то я прозрел и понял, зачем на самом деле нужны аппы.
Ответ написан
@ATNC
Full-stack web\python developer
Приложение - это "инкапсуляция" модулей, которые занимаются задачами одного типа.
Например приложение "auth" занимается работой с пользователем - авторизацией, аутентификацией, регистрацией.
Приложение "blog" занимается написанием, публикацией постов - это значит что в этом приложении находится код, который отвечает только за сущности блога.
В блоге есть посты, и каждый пост может быть привязан к пользователю. Получается что в даном случае приложение "auth" взаимодействует с приложением "blog".
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы