Приложение в Django — это отдельный фрагмент функциональности разрабатываемого сайта, более или менее независимый от других таких же фрагментов и входящий в состав проекта. Приложение может реализовывать работу всего сайта, его раздела или же какой-либо внутренней подсистемы сайта, используемой другими приложениями.
Любое приложение представляется обычным пакетом Python, в котором содержатся модули с программным кодом. Этот пакет находится в папке проекта — там же, где располагается пакет конфигурации. Имя пакета приложения станет именем самого приложения.
Создадим приложение с именем firstapp командой. Для этого остановим отладочный веб-сервер, перейдем в папку проекта и введем следующую команду:
$ python manage.py startapp firstapp
Команда startapp утилиты manage.py запускает создание нового приложения с определенным именем. Структура проекта изменится, добавиться директория firstapp с определенными файлами:
В следующих разделах будем рассматривать подробнее эти файлы. Если кратко, в приложении находятся следующие файлы:
migrations/ — папка вложенного пакета, в котором будут храниться сгенерированные Django миграции. Пока что в папке находится лишь пустой файл __init__.py, помечающий ее как полноценный пакет Python;
__init__.py — пустой файл, сигнализирующий исполняющей среде Python, что эта папка — пакет;
admin.py — модуль административных настроек и классов-редакторов;
apps.py — модуль с настройками приложения;
models.py — модуль с моделями;
tests.py — модуль с тестирующими процедурами;
views.py — модуль с контроллерами.
Каждый раз при создании приложения, следует его регистрировать в системе Django. Откроем settings.py и найдем следующий фрагмент кода:
Список, хранящийся в переменной INSTALLED_APPS, перечисляет все приложения, зарегистрированные в проекте и участвующие в его работе. Изначально в этом списке присутствуют только стандартные приложения, входящие в состав Django и реализующие различные встроенные подсистемы фреймворка. Так, приложение django.contrib.auth реализует подсистему разграничения доступа, а приложение django.contrib.sessions — подсистему, обслуживающую серверные сессии.
Зарегистрируем наше приложение в системе Django. Для этого напишем:
Мы указали строку с путем к классу FirstappConfig, описывающему конфигурацию приложения и объявленному в модуле apps.py пакета приложения firstapp.
Сохраним все изменения и напишем свой первый контроллер.