Показ кастомной страницы 404 в Django
В этом посте мы рассмотрим, как показать кастомную страницу 404 в приложении на Django. Это может быть полезно, если вы хотите предоставить пользователям более информативную и дружелюбную страницу ошибки вместо стандартной страницы 404, которая показывает только сообщение об ошибке.
Шаг 1: Создание кастомной страницы 404
Сначала создайте новый шаблон для страницы 404. Назовите его, например, 404.html
. Этот шаблон должен находиться в папке templates
вашего приложения.
<!-- templates/404.html -->
<!DOCTYPE html>
<html>
<head>
<title>Страница не найдена</title>
</head>
<body>
<h1>Страница не найдена</h1>
<p>Извините, но страница, которую вы ищете, не существует.</p>
</body>
</html>
Шаг 2: Создание кастомного представления для страницы 404
Далее создайте новое представление, которое будет обрабатывать запросы на страницу 404. Назовите его, например, page_not_found
.
# views.py
from django.http import HttpResponseNotFound
from django.template.loader import get_template
def page_not_found(request, exception):
template = get_template('404.html')
return HttpResponseNotFound(template.render())
Шаг 3: Настройка URL для страницы 404
Теперь вам нужно настроить URL для страницы 404. Для этого добавьте следующую строку в файл urls.py
вашего приложения:
# urls.py
from django.conf.urls import handler404
from . import views
handler404 = views.page_not_found
Шаг 4: Настройка Django для показа кастомной страницы 404
Наконец, вам нужно настроить Django для показа кастомной страницы 404. Для этого добавьте следующую строку в файл settings.py
вашего проекта:
# settings.py
DEBUG = False
Вывод
Теперь, когда вы запустите свой проект и попробуете открыть несуществующую страницу, Django покажет вашу кастомную страницу 404. Это может помочь улучшить пользовательский опыт и сделать ваше приложение более дружелюбным.
Примечание
Не забудьте включить отладку (DEBUG = True
) во время разработки, чтобы увидеть стандартную страницу ошибки Django. Когда вы готовы к производству, выключите отладку (DEBUG = False
), чтобы показать кастомную страницу 404.