Рассмотрим работу веб-приложения:
Когда пользователь вводит адрес сайта в браузере, Django ищет первое совпадение с URL-адресом, вызывает соответствующую функцию-обработчик (представление) и возвращает отрендеренный ответ пользователю. Этот ответ может быть HTML-шаблоном или другим типом данных.
Для отрисовки шаблона можно использовать класс TemplateView из модуля django.views.generic. Пример приведенного кода показывает создание представления NewsView, которое наследуется от TemplateView, и указывает шаблон news.html.
from django.views.generic import TemplateView class NewsView(TemplateView): template_name = "news.html" |
---|
В приложении news создадим каталог templates, а внутри файл news.html
Однако,если мы запустим сервер
python manage.py runserver |
При попытке открыть адрес http://127.0.0.1:8000/news/ возникает ошибка "страница не найдена (404)". Для того чтобы связать этот адрес с представлением, необходимо добавить соответствующий путь в файл urls.py приложения news.
from django.urls import path from news.apps import NewsConfig from news.views import NewsView app_name = NewsConfig.name urlpatterns = [ path('', NewsView.as_view(), name='news'), ] |
---|
После этого, можно зарегистрировать все адреса приложения news в основном приложении, используя функцию include в файле urls.py основного приложения.
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('news/', include('news.urls', namespace='news')) ] |
---|
при переходе на страницу news http://127.0.0.1:8000/news/ загрузится пустая страница, так и должно быть, ведь файл news.html пуст.
Скоро мы это исправим)