410 Глава 18 • Знакомство с Django
urls.py ❶
"""Определяет схемы URL для learning_logs."""
❷
from django.urls import path
❸
from . import views
❹
app_name = 'learning_logs'
❺
urlpatterns = [
# Домашняя страница
❻
path('', views.index, name='index'),
]
Чтобы было понятно, с какой версией
urls .py
мы работаем, в начало файла добавля-
ется строка документации
. Затем импортируется функция
path
, она необходима
для связывания URL с представлениями
. Также импортируется модуль
views
;
точка приказывает Python импортировать представления из каталога, в котором
находится текущий модуль
urls .py
. Переменная
app_name
помогает Django отличить
этот файл
urls .py
от одноименных файлов в других приложениях в проекте
. Пере-
менная
urlpatterns
в этом модуле представляет собой список страниц, которые
могут запрашиваться из приложения
learning_logs
.
Схема URL представляет собой вызов функции
path()
с тремя аргументами
.
Первый аргумент содержит строку, которая помогает Django правильно марш-
рутизировать текущий запрос. Django получает запрашиваемый URL и пытается
отобразить его на представление. Для этого Django ищет среди всех определенных
схем URL ту, которая соответствует текущему запросу. Базовый URL-адрес про-
екта (
http://localhost:8000/
) игнорируется, так что пустая строка совпадает с ба-
зовым URL-адресом. Любой другой URL-адрес не будет соответствовать этому
выражению, и Django вернет страницу с ошибкой, если запрашиваемый URL не
соответствует ни одной из существующих схем URL.
Второй аргумент
path()
определяет вызываемую функцию из
views .py
. Когда за-
прашиваемый URL-адрес соответствует регулярному выражению, Django вызывает
index()
из
views .py
(мы напишем эту функцию представления в следующем разделе).
Третий аргумент определяет имя
index
для этой схемы URL, чтобы на нее можно
было ссылаться в других частях кода. Каждый раз, когда потребуется предоставить
ссылку на домашнюю страницу, мы будем использовать это имя вместо URL.
Написание представления
Функция представления получает информацию из запроса, подготавливает данные,
необходимые для построения страницы, и возвращает данные браузеру — часто
с использованием шаблона, определяющего внешний вид страницы.
Файл
views .py
в
learning_logs
был сгенерирован автоматически при выполнении
коман ды
python
manage.py
startapp
. На данный момент его содержимое выглядит
так: