В руководствах по этому фреймворку вы будете встречать слова «проект» и «приложение». В Django проектом называется установка Django с определенными настройками. Приложение — это группа моделей, представлений, шаблонов и URL.
Приложение взаимодействует с фреймворком для предоставления различных возможностей. Его можно задействовать и в других наработках. Проектом можно считать сайт, которые включает приложения: блог, справочник или форум, которые найдут применение и в других проектах.
Создание приложения
Создадим приложение блога на Django. В командной строке из корневого каталога проекта нужно ввести следующее:
python manage.py startapp blog
Это создаст стандартную структуру:
blog/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
Файлы в нем выполняют такие задачи:
admin.py
— здесь регистрируются модели, которые будут использоваться в административном сайте Django (его необязательно использовать).apps.py
— включает настройкуblog
.migrations
— этот каталог включает миграции базы данных приложения. С их помощью Django сохраняет информацию об изменении моделей и соответственно синхронизирует базу данных.models.py
— модели данных приложения. Все приложения Django должны иметь файлmodels.py
, но он может оставаться пустым.tests.py
— здесь можно добавлять тесты для приложения.views.py
— здесь находится логика приложения. Каждое представление получает HTTP-запрос, обрабатывает его и возвращает ответ.
Активация приложений
Чтобы Django имел возможность отслеживать приложение и мог создавать для моделей базы данных, приложение нужно активировать. Для этого требуется отредактировать файл settings.py
и добавить в INSTALLED_APP
пункт blog.apps.BlogConfig
. Теперь он должен выглядеть так:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog.apps.BlogConfig',
]
Класс BlogConfig
— это настройка целого приложения. Теперь Django знает, что оно активно и сможет загружать его модели.