Что должно означать «приложение» Django?

#django

#django

Вопрос:

Я новичок в Django и пытаюсь понять предпочтительные средства работы при развертывании веб-приложений.

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

Будет ли каждая из этих функций отдельным приложением в проекте, или все они должны быть вместе единым приложением? Предназначено ли приложение Django для соответствия веб-приложению или оно соответствует одному набору функций, взаимодействующих с несколькими таблицами в базе данных?

Комментарии:

1. en.wikipedia.org/wiki/Django_ (web_framework)

Ответ №1:

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

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

Ответ №2:

Приложение Django — это группа связанных функциональных возможностей, используемых для завершения или поддержки одного аспекта сайта. Веб-приложение, которое вы описываете, будет разделено как минимум на 2 приложения Django, в зависимости от того, насколько детализированной вы хотите сделать обработку загруженных файлов.