Несколько слов об ошибке 404

Опубликовал: Monday, February 13, 2024 в категории Django | Пока нет комментариев

Сейчас в конфигурации URL определен только один шаблон URL - для обработки запросов к URL /hello/. Но что произойдет, если в запросе будет указан какой-нибудь другой URL?

Для того чтобы разобраться в этом, запустите сервер разработки Django и попробуйте зайти, скажем, на страницу http://127.0.0.1:8000/goodbye/, http://127.0.0.1:8000,/hello./subdirectory/ или даже http://127.0.0.1:8000/ (в «корень» сайта). Вы увидите сообщение «Page not found» (Страница не найдена) (см. рис. 3,1). Django выводит это сообщение при обращении к адресам URL, отсутствующим в конфигурации.

Но на этой странице мы видим не только сообщение об ошибке 404. Здесь точно сказано, какая конфигурация URL была использована, и перечислены все представленные в ней образцы URL. Имея эту информацию, вы можете сказать, почему запрос к данному URL завершился ошибкой

404.

Естественно, это конфиденциальная информация, предназначенная только для разработчика. Вряд ли вы захотите сообщать ее всем и каждому, когда сайт заработает в нормальном режиме. Поэтому в таком виде страница «Page not found» отображается, только если проект Django работает в режиме отладки. Как отключить режим отладки, мы расскажем ниже. А пока просто запомните, что любой вновь созданный проект Django работает в режиме отладки, а если режим отладки отключен, то ответ с кодом 404 выглядит иначе.

Рис. 3.1. Страница Django с кодом ошибки 404

Несколько слов о корне сайта

Как было сказано в предыдущем разделе, при попытке обратиться к корню сайта http://127.0.0.1:8000/ вы увидите сообщение об ошибке 404. Сам

фреймворк Django ничего не добавляет в корень сайта; этот URL не считается каким-то особым случаем. Вы сами должны описать этот URL как один из шаблонов URL в конфигурации URL.

Такой шаблон URL, соответствующий корню сайта, выглядит довольно странно, поэтому о нем стоит упомянуть. Когда вы будете готовы реализовать представление для корня, используйте шаблон совпадающий с пустой строкой, например:

from mysite.views import hello, my_homepage_view

urlpatterns = patternsC’, ("*$’, my_homepage_view), U …

)

Источник: Головатый А., Каплан-Мосс Дж. Django. Подробное руководство, 2-е издание. - Пер. с англ. - СПб.: Символ- Плюс, 2010. - 560 е., ил.

Похожие посты:

Комментировать

Your email address will not be published. Required fields are marked *