Мы уже упоминали INSTALLED_APPS когда создавали наше приложение, теперь поговорим о нём подробнее.
Если вы когда-нибудь составляли списки дел (у кого-то они на бумажке, у кого-то — в голове), то согласитесь, чем больше будет пунктов "не забыть", тем четче ваши планы. В Django такой список тоже есть, и называется он INSTALLED_APPS. Это перечень всех приложений, которые должны быть активны в вашем проекте. Только зарегистрировав приложение в этом списке, вы сможете полностью интегрировать его в проект.
С точки зрения Django, приложение, не добавленное в INSTALLED_APPS, — как человек без пропуска в офис: он вроде и в здании, но не может попасть ни в одну комнату.
Где находится INSTALLED_APPS?
Открываем файл settings.py вашего проекта. Самое время почувствовать себя настоящим системным администратором! Пролистайте немного вниз, и вы найдете блок с переменной INSTALLED_APPS. Примерно вот так:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
Это список предустановленных приложений Django. Эти приложения идут "из коробки" и позволяют вашей системе работать полноценно: начиная от управления пользователями (django.contrib.auth) и заканчивая любимой всеми админкой (django.contrib.admin).
Зачем регистрировать приложения в INSTALLED_APPS?
Регистрация приложения в INSTALLED_APPS — это как представление нового сотрудника в коллективе. Django "знакомится" с вашим приложением и начинает отслеживать его модели, миграции, шаблоны и другие файлы. Без регистрации:
- Миграции модели работать не будут.
- Шаблоны, лежащие в папке
templatesвашего приложения, не будут найдены. - Статические файлы (CSS, JS, картинки) тоже проигнорируются.
- Админ-зона будет вести себя так, будто вашего приложения вообще не существует.
Вы ведь не хотите, чтобы ваше приложение оказалось в статусе, который программисты называют "непонятно работает"? Поэтому регистрируемся!
Регистрация приложения в INSTALLED_APPS
Шаг 1. Открытие settings.py
Для начала убедитесь, что вы находитесь в корневом каталоге проекта. Найдите файл settings.py в папке проекта. Он обычно лежит там же, где файлы urls.py и wsgi.py.
Пример структуры проекта:
my_project/
manage.py
my_project/
__init__.py
settings.py
urls.py
wsgi.py
blog/
__init__.py
admin.py
apps.py
models.py
tests.py
views.py
Откройте settings.py. Мы будем редактировать список INSTALLED_APPS.
Шаг 2. Найти файл apps.py в вашем приложении
Каждое приложение, созданное командой startapp, включает файл apps.py. Этот файл содержит уникальный класс, который "описывает" ваше приложение. Например, если приложение называется blog, файл apps.py выглядит примерно так:
from django.apps import AppConfig
class BlogConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'blog'
Обратите внимание на строку name. Это идентификатор приложения. Запомните его — он нужен нам для регистрации.
Шаг 3. Добавление приложения в INSTALLED_APPS
Теперь, когда вы знаете, как называется ваше приложение, добавьте его в список INSTALLED_APPS в settings.py. Пример:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog', # Добавили наше приложение "Блог"
]
Вы просто указываете название вашего приложения как строку. Обычно это соответствует имени папки приложения.
Шаг 4. Запускаем сервер для проверки
Чтобы убедиться, что приложение зарегистрировано, запустите локальный сервер:
python manage.py runserver
Если ошибок нет — поздравляю, ваше приложение официально стало частью проекта! Можно начинать магию.
Типичные ошибки при регистрации
- Неправильное имя приложения в
INSTALLED_APPS
Самая частая ошибка — скопировать имя папки приложения неправильно. Если у вас приложение называется blog, но вы написали Blog (с большой буквы), Django не сможет найти его. Всегда проверяйте, чтобы имя совпадало с полем name в apps.py.
- Забыли добавить приложение вовсе
Если вы создали приложение, но забыли внести его в INSTALLED_APPS, то Django будет вести себя, как будто приложение не существует. Миграции, шаблоны и прочие фичи работать не будут.
- Дублирование записей
Не добавляйте одно и то же приложение дважды в список INSTALLED_APPS. Это может привести к странным ошибкам.
Важные аспекты регистрации приложений
Не все приложения Django созданы одинаково. Например, если вы используете сторонние библиотеки, такие как Django REST Framework, вы тоже должны зарегистрировать их в INSTALLED_APPS:
INSTALLED_APPS = [
'rest_framework',
'blog',
]
В некоторых библиотеках (например, django-allauth) регистрация нескольких приложений обязательна, потому что они состоят из набора модулей.
Практика: Регистрация приложения "Блог"
Давайте закрепим теорию созданием и регистрацией приложения "Блог". Вот пошаговый план:
- Создайте приложение:
python manage.py startapp blog
- Убедитесь, что файл
apps.pyсодержит правильное имя:
class BlogConfig(AppConfig):
name = 'blog'
- Добавьте приложение в
INSTALLED_APPSвsettings.py:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
]
- Запустите сервер:
python manage.py runserver
- Проверьте, что сервер работает без ошибок. Если ошибок нет, значит, приложение зарегистрировано успешно.
Полезные ссылки
Теперь ваше приложение официально зарегистрировано. Django готово использовать его модели, миграции, шаблоны и другие компоненты.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ