1.3. Приложения
Приложение в Django — это отдельный фрагмент функциональности разрабатываемого сайта, более или менее независимый от других таких же фрагментов и входящий в состав проекта. Приложение может реализовывать работу всего сайта, его раздела или же какой-либо внутренней подсистемы сайта, используемой другими приложениями.
Любое приложение представляется обычным пакетом Python, в котором содержатся модули с программным кодом. Этот пакет находится в папке проекта — там же, где располагается пакет конфигурации. Имя пакета приложения станет именем самого приложения.
Создадим приложение с именем firstapp
командой. Для этого остановим отладочный веб-сервер, перейдем в папку проекта и введем следующую команду:
$ python manage.py startapp firstapp
Команда startapp
утилиты manage.py
запускает создание нового приложения с определенным именем. Структура проекта изменится, добавиться директория firstapp
с определенными файлами:
firstsite
├───env/
├───firstapp/
│ ├───migrations/
│ │ └───__init__.py
│ ├───__init__.py
│ ├───admin.py
│ ├───apps.py
│ ├───models.py
│ ├───test.py
│ └───views.py
├───firstsite/
│ ├───__init__.py
│ ├───asgi.py
│ ├───settings.py
│ ├───urls.py
│ └───wsgi.py
└───manage.py
В следующих разделах будем рассматривать подробнее эти файлы. Если кратко, в приложении находятся следующие файлы:
migrations/
— папка вложенного пакета, в котором будут храниться сгенерированные Django миграции. Пока что в папке находится лишь пустой файл__init__.py
, помечающий ее как полноценный пакет Python;__init__.py
— пустой файл, сигнализирующий исполняющей среде Python, что эта папка — пакет;admin.py
— модуль административных настроек и классов-редакторов;apps.py
— модуль с настройками приложения;models.py
— модуль с моделями;tests.py
— модуль с тестирующими процедурами;views.py
— модуль с контроллерами.
Каждый раз при создании приложения, следует его регистрировать в системе Django. Откроем settings.py
и найдем следующий фрагмент кода:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
Список, хранящийся в переменной INSTALLED_APPS
, перечисляет все приложения, зарегистрированные в проекте и участвующие в его работе. Изначально в этом списке присутствуют только стандартные приложения, входящие в состав Django и реализующие различные встроенные подсистемы фреймворка. Так, приложение django.contrib.auth
реализует подсистему разграничения доступа, а приложение django.contrib.sessions
— подсистему, обслуживающую серверные сессии.
Зарегистрируем наше приложение в системе Django. Для этого напишем:
INSTALLED_APPS = [
. . .
'firstapp.apps.FirstappConfig',
]
Мы указали строку с путем к классу FirstappConfig
, описывающему конфигурацию приложения и объявленному в модуле apps.py
пакета приложения firstapp
.
Сохраним все изменения и напишем свой первый контроллер.
Last updated
Was this helpful?