Все приложения, зарегистрированные в текущем проекте, перечислены в параметре INSTALL_APPS. Если в приложении используются только контроллеры, допускается не добавлять его в данный перечень, однако так делать не рекомендуется.
Сразу после создания проекта список состоит их следующих приложений:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ]
Назначение данных приложений:
— django.contrib.admin – обеспечивает работу административного веб-сайта Django;
— django.contrib.auth – интегрированная подсистема разграничения доступом;
— django.contrib.contenttypes – обеспечивает хранение всех моделей проекта. Приложение необходимо при создании полиморфных связей между моделями;
— django.contrib.sessions – обработка серверных сессий;
— django.contrib.messages – вывод всплывающих сообщений (используется административным сайтом);
— django.contrib.staticfiles – используется для обработки статических файлов.
Список зарегистрированных посредников
Посредник Django (middleware) – программный модуль, который выполняет предварительную обработку запроса от клиента перед отправкой контроллеру, а также обработку ответа контроллера, перед отправкой клиенту.
Для хранения списка всех посредников, зарегистрированных в проекте, используется параметр MIDDLEWARE. При создании проекта данный список выглядит следующим образом:
MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ]
Стандартные посредники имеют следующее назначение:
— django.middleware.security.SecurityMiddleware – дополнительная защита от сетевых атак;
— django.contrib.sessions.middleware.SessionMiddleware – обработка серверных сессий на низком уровне. Используется подсистемами сессий, разграничения доступа и всплывающих сообщений;
— django.middleware.common.CommonMiddleware – предварительная обработка запросов;
— django.middleware.csrf.CsrfViewMiddleware – защита от межсайтовых атак при использовании POST-запросов;
— django.contrib.auth.middleware.AuthenticationMiddleware – обеспечивает добавление в объект запроса атрибута, в котором хранится текущий пользователь. Данный атрибут позволяет определить в шаблоне или контроллере, какой из пользователей авторизован на текущий момент;
— django.contrib.messages.middleware.MessageMiddleware – обработка всплывающих сообщений на низком уровне;
— django.middleware.clickjacking.XFrameOptionsMiddleware – дополнительная защита сайта от внешних сетевых атак.