Django 7. Первое представление
В этом посте, создадим первое представление, пропишем URL-паттерны и разберём как это работает.
Дополнительные материалы
Для скачивания материалов необходимо войти или зарегистрироваться
Файлы также можно получить в Telegram-боте по коду: 772660
Реклама
В интернете всё построено на запросах. Открывая любую страницу, мы делаем запрос к серверу "хочу попасть на такую-то страницу", а сервер уже обрабатывает его и возвращает ответ на запрос с содержимым страницы.
Для формирования ответа на запрос с доступом к той или иной странице в Django отвечают, так называемые "представления", они же "views".
Давайте создадим наше первое простое представление, для возврата содержимого базового шаблона посетителю сайта.
Первое представление.
Переходим в файл views.py
расположенный в директории приложения.
Под имеющимся в файле импортом добавим функцию со следующим кодом:
def index(request):
return render(request,
'blog/base.html')
Мы создали представление index
, получающего запрос от пользователя.
Поскольку у нас пока заглушка и данные передавать нам никакие не нужно, сразу переходим к возврату ответа пользователю. За это отвечает функция render
, в которую мы передаём запрос, а так же путь до файла шаблона.
URL-паттерн приложения.
Теперь получив запрос на отображение главной страницы сайта, Django вернёт её содержимое. Только вот Django, пока ничего не знает, о том, где у нас главная страница и как строить маршрутизацию по URL-адресам.
В директории приложения создадим файл urls.py
.
Файл urls.py
в Django имеет важное значение. Он определяет, как URL-запросы будут соотноситься с определенными представлениями и функциями. В этом файле определяются URL-шаблоны, которые связывают входящие URL-запросы с соответствующими представлениями. Представления обрабатывают запросы и возвращают соответствующие HTTP-ответы.
Добавим следующий код:
from django.urls import path
from blog import views
app_name = 'blog'
urlpatterns = [
path('', views.index, name='index'),
]
В переменной app_name
указываем имя приложения, для корректного сопоставления URL-адресов.
Подробнее про urlpatterns.
В переменную urlpatterns
присваиваем список. Внутри списка вызываем функцию path, формирующую маршрут и URL-адрес.
В неё передаём:
- Первым параметром URL-паттерн. Пустые кавычки означают, что паттерн будет применён к основному адресу сайта, например
pressanybutton.ru
, а если пропишем "blog", тогда он будет срабатывать, когда будем переходить по адресуpressanybutton.ru/blog
- Вторым параметром указываем, какое представление необходимо вызвать при запросе данного адреса.
- В третьем параметре указываем имя для пути.
Также обратите внимание на вторую строку импорта, замените blog на имя вашего приложения
URL-паттерн проекта.
Теперь, надо сообщить Django о том, что у нас есть приложение со своим набором URL-паттернов. Для этого, перейдём в директорию проекта и откроем файл urls.py
.
Там уже будет переменная urlpatterns
с прописанным паттерном панели администратора.
Добавим в имеющийся список новую строку с адресами приложения:
from django.urls import path, include
urlpatterns = [
# ...
path('', include('blog.urls', namespace='blog')),
]
В данной строке, мы сообщаем Django, что по пути сайта мы будем использовать URL-паттерны из приложения.
Паттерны STATIC_URL и MEDIA_URL.
И сразу добавим сюда определение путей для медиа и статических файлов. В этом же файле, только ниже добавьте следующие строки:
from django.conf.urls.static import static
from django.conf import settings
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Запустим Django командой python manage.py runserver
и перейдём на страницу.
Должна отобразиться страница с заглушкой.
Все статьи