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 — це не просто текст, а зручний засіб взаємодії з користувачем. Спробуйте додати сповіщення у свій проєкт і подивіться, як це покращить користувацький досвід. Успіхів і до зустрічі у наступній лекції!

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ