JavaRush /Курсы /Модуль 3: Django /Установка и настройка Message Framework в Django

Установка и настройка Message Framework в Django

Модуль 3: Django
14 уровень , 1 лекция
Открыта

Всем привет, друзья! Сегодня мы продолжим погружаться в магию уведомлений в Django. Согласитесь, без всплывающих сообщенияй вроде "Пароль успешно изменён", "Упс, что-то пошло не так!" или "Ваш заказ отправлен!" было бы скучно. А порой — ничего непонятно. Так что без Message Framework нам не обойтись. В этой лекции мы разберёмся, как его установить, настроить и заставить работать на благо наших пользователей и нашего приложения.

🛠️ Установка и настройка Message Framework

Ну что, начинаем! Для начала давайте разберёмся, что же такое Django Message Framework. Простыми словами — это инструмент, который позволяет добавлять уведомления (сообщения) о каких-либо событиях внутри нашего приложения. Причём эти сообщения временные: они отображаются только один раз и исчезают после первой же загрузки страницы. Это очень удобно для уведомления пользователя о результатах его действий.

🔍 Проверка зависимостей

Прежде чем начать, давайте убедимся, что Message Framework уже доступен в нашем проекте. Хорошая новость: он встроен в Django по умолчанию, ничего дополнительно устанавливать не нужно. Однако убедимся, что всё настроено корректно.

Откройте файл settings.py вашего Django проекта и найдите секцию INSTALLED_APPS. В нём должен быть подключен следующий компонент:

INSTALLED_APPS = [
    ...
    'django.contrib.messages',
    ...
]

Если вдруг его нет — добавьте. Без этого библиотека просто не заработает.

А теперь не забудьте проверить секцию MIDDLEWARE. Там должно быть что-то вроде этого:

MIDDLEWARE = [
    ...
    'django.contrib.sessions.middleware.SessionMiddleware',  # Нужно для хранения сообщений
    'django.middleware.common.CommonMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',  # Это важно!
    ...
]

Два важных момента тут:

  1. SessionMiddleware нужно, потому что сообщения в Django хранятся в сессиях.
  2. MessageMiddleware добавляет механику обработки сообщений в ваш проект.

Если что-то отсутствует — срочно добавляем!

📃 Базовые настройки

Итак, библиотека подключена, и можно двигаться дальше. Давайте посмотрим на базовые настройки, которые Django предоставляет для Message Framework. Эти настройки находятся в том же файле settings.py.

  1. Настройка уровня сообщений

Django поддерживает пять уровней сообщений:

  • DEBUG — для отладки.
  • INFO — информационные сообщения.
  • SUCCESS — успешное выполнение действия.
  • WARNING — предупреждения.
  • ERROR — ошибки.

Стандартный уровень настроен как DEBUG, но это можно изменить:

from django.contrib.messages import constants as message_constants

MESSAGE_LEVEL = message_constants.INFO  # Уровень сообщений по умолчанию

Разумно оставить уровень INFO, если вы хотите показывать пользователю только важные уведомления.

  1. Настройка хранения сообщений

Django использует так называемые "бэкэнды" для хранения сообщений. По умолчанию используется сессионный бэкэнд:

MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage'

Если ваша сессия настроена правильно, так и оставляем. Но есть альтернативы: например, CookieStorage, если не хотите хранить сообщения в сессии.

💻 Практика: добавляем сообщения в проект

Теперь давайте применим всё это на практике. Мы создадим простую страницу с формой, которая будет приветствовать пользователя после успешного заполнения.

  1. Обновляем представления

Добавим сообщение в представление (view). Откройте файл views.py в вашем приложении. Допустим, у нас есть форма, принимающая имя пользователя:

from django.shortcuts import render, redirect
from django.contrib import messages

def welcome_view(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        if username:
            # Добавляем сообщение
            messages.success(request, f'Добро пожаловать, {username}!')
            return redirect('welcome')
        else:
            # Если имя пользователя не указано
            messages.error(request, 'Пожалуйста, введите ваше имя.')

    return render(request, 'welcome.html')

Здесь используется метод messages.success() для добавления сообщения об успешном выполнении действия и messages.error() для уведомления об ошибке.

  1. Обновляем шаблон

А теперь нам нужно обновить наш шаблон, чтобы эти сообщения отображались. Откройте файл welcome.html:

<!DOCTYPE html>
<html>
<head>
    <title>Welcome</title>
</head>
<body>
    <h1>Приветствие</h1>

    <!-- Отображение сообщений -->
    {% if messages %}
        <ul>
            {% for message in messages %}
                <li class="{{ message.tags }}">{{ message }}</li>
            {% endfor %}
        </ul>
    {% endif %}

    <form method="post">
        {% csrf_token %}
        <label for="username">Ваше имя:</label>
        <input type="text" name="username" id="username">
        <button type="submit">Отправить</button>
    </form>
</body>
</html>

Вот тут есть важный кусок кода:

{% if messages %}
    <ul>
        {% for message in messages %}
            <li class="{{ message.tags }}">{{ message }}</li>
        {% endfor %}
    </ul>
{% endif %}

Он проверяет, есть ли сообщения, и отображает их. Обратите внимание на message.tags — это CSS-класс (например, success, error), который будет автоматически добавлен для стилизации.

🎨 Стили

Давайте добавим немного стилей, чтобы наши сообщения выглядели красиво. В тот же файл welcome.html добавьте внутри <head>:

<style>
    .success {
        color: green;
    }
    .error {
        color: red;
    }
    .info {
        color: blue;
    }
    .warning {
        color: orange;
    }
</style>

Теперь каждое сообщение будет выделяться своим цветом.

🧪 Быстрое тестирование

Запустите сервер разработки:

python manage.py runserver

Откройте браузер и перейдите на страницу с формой. Попробуйте заполнить её и отправить, а затем проверьте, как отображаются сообщения. Не забудьте протестировать вариант с пустым полем, чтобы увидеть сообщение об ошибке.

🚀 Задание для самостоятельной практики

  1. Добавьте систему сообщений на одной из страниц вашего проекта. Например, для подтверждения успешного добавления записи в базу данных.
  2. Поиграйтесь с уровнями сообщений — DEBUG, INFO, SUCCESS. Поэкспериментируйте с их отображением.
  3. Создайте кастомный стиль для сообщений и интегрируйте его в ваш шаблон.

На этом всё! Теперь сообщение в Django — это не просто текст, а удобное средство взаимодействия с пользователем. Попробуйте добавить уведомления в свой проект и посмотрите, как это улучшит пользовательский опыт. Удачи и до встречи в следующей лекции!

1
Задача
Модуль 3: Django, 14 уровень, 1 лекция
Недоступна
Проверка установки Message Framework
Проверка установки Message Framework
1
Задача
Модуль 3: Django, 14 уровень, 1 лекция
Недоступна
Отображение сообщений в шаблоне
Отображение сообщений в шаблоне
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ