HTML Diff
1 added 1 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Как и любой серверный веб-фреймворк, Django построен вокруг HTTP. Он принимает запросы, на основе которых формирует и отдает HTTP-ответы. Django берет на себя всю грязную работу: разбор запроса, выбор правильного обработчика, отправку ответа клиенту. Программисту остается выполнить только самый необходимый минимум для добавления новых страниц на сайте.</p>
1 <p>Как и любой серверный веб-фреймворк, Django построен вокруг HTTP. Он принимает запросы, на основе которых формирует и отдает HTTP-ответы. Django берет на себя всю грязную работу: разбор запроса, выбор правильного обработчика, отправку ответа клиенту. Программисту остается выполнить только самый необходимый минимум для добавления новых страниц на сайте.</p>
2 <p>В этом уроке разберемся, что и как нужно делать разработчику, чтобы добавить новые страницы на сайт.</p>
2 <p>В этом уроке разберемся, что и как нужно делать разработчику, чтобы добавить новые страницы на сайт.</p>
3 <p>В этот минимум входят три вещи:</p>
3 <p>В этот минимум входят три вещи:</p>
4 <ul><li><strong>Маршрут</strong>. Определяет адрес конкретной страницы или набора страниц на сайте. Маршрут связывает эти адреса с конкретным обработчиком, который будет вызван при запросе этих страниц</li>
4 <ul><li><strong>Маршрут</strong>. Определяет адрес конкретной страницы или набора страниц на сайте. Маршрут связывает эти адреса с конкретным обработчиком, который будет вызван при запросе этих страниц</li>
5 - <li><strong>Контроллер</strong>. Слой кода, в котором расположены обработчики страниц сайта. Они анализируют запрос и формируют ответ, который фреймворк отправляет пользователю</li>
5 + <li><strong>Контроллер</strong>. Слой кода, в котором расположены обработчики сраниц сайта. Они анализируют запрос и формируют ответ, который фреймворк отправляет пользователю</li>
6 <li><strong>Шаблон</strong>. Специальный файл, который используется, чтобы формировать HTTP-ответ</li>
6 <li><strong>Шаблон</strong>. Специальный файл, который используется, чтобы формировать HTTP-ответ</li>
7 </ul><h3>Маршрут</h3>
7 </ul><h3>Маршрут</h3>
8 <p>Маршруты любого проекта на Django хранятся в файле<em>urls.py</em>. В нашем случае он находится по пути<em>hexlet_django_blog/urls.py</em>. Этот файл предназначен для описания маршрутов нашего сайта.</p>
8 <p>Маршруты любого проекта на Django хранятся в файле<em>urls.py</em>. В нашем случае он находится по пути<em>hexlet_django_blog/urls.py</em>. Этот файл предназначен для описания маршрутов нашего сайта.</p>
9 <p>В этом файле находится переменная urlpatterns - список маршрутов нашего сайта. Изначально этот файл содержит только один маршрут, который соответствует разделу администратора<em>admin/</em>:</p>
9 <p>В этом файле находится переменная urlpatterns - список маршрутов нашего сайта. Изначально этот файл содержит только один маршрут, который соответствует разделу администратора<em>admin/</em>:</p>
10 <p>Функция path(route, view) задает правило для обработки маршрута. Первым параметром она принимает адрес запрашиваемой страницы или паттерн, который описывает группу страниц. В коде выше это адрес раздела администратора.</p>
10 <p>Функция path(route, view) задает правило для обработки маршрута. Первым параметром она принимает адрес запрашиваемой страницы или паттерн, который описывает группу страниц. В коде выше это адрес раздела администратора.</p>
11 <p>Вторым параметром передается обработчик или встраиваемый<em>urls.py</em>другого приложения. Обработчики запросов в Django называют view - на жаргоне джангистов "вьюха".</p>
11 <p>Вторым параметром передается обработчик или встраиваемый<em>urls.py</em>другого приложения. Обработчики запросов в Django называют view - на жаргоне джангистов "вьюха".</p>
12 <p>Заменим стартовую страницу на собственную. Нам понадобится view и шаблон -template.</p>
12 <p>Заменим стартовую страницу на собственную. Нам понадобится view и шаблон -template.</p>
13 <p>Для этого в файл<em>urls.py</em>добавим импорт вьюхи:</p>
13 <p>Для этого в файл<em>urls.py</em>добавим импорт вьюхи:</p>
14 <p>Далее добавим в список urlpatterns новое правило обработки адреса главной страницы:</p>
14 <p>Далее добавим в список urlpatterns новое правило обработки адреса главной страницы:</p>
15 <p>Мы добавили правило, которое назначает обработчиком главной страницы или пустого пути вьюху views.index.</p>
15 <p>Мы добавили правило, которое назначает обработчиком главной страницы или пустого пути вьюху views.index.</p>
16 <h3>Контроллер</h3>
16 <h3>Контроллер</h3>
17 <p>Теперь создадим файл<em>hexlet_django_blog/views.py</em>и запишем в него следующий код:</p>
17 <p>Теперь создадим файл<em>hexlet_django_blog/views.py</em>и запишем в него следующий код:</p>
18 <p>Здесь мы используем функцию<a>render</a>. Она формирует HTML на основе указанного шаблона и использует при рендеринге (составлении страницы) данные из словаря context.</p>
18 <p>Здесь мы используем функцию<a>render</a>. Она формирует HTML на основе указанного шаблона и использует при рендеринге (составлении страницы) данные из словаря context.</p>
19 <h3>Шаблон</h3>
19 <h3>Шаблон</h3>
20 <p>Теперь нам потребуется шаблон. Создадим директорию<em>hexlet_django_blog/templates</em>и файл<em>index.html</em>в ней. В файл запишем следующее:</p>
20 <p>Теперь нам потребуется шаблон. Создадим директорию<em>hexlet_django_blog/templates</em>и файл<em>index.html</em>в ней. В файл запишем следующее:</p>
21 <p>Остается сделать небольшую настройку Django. Сначала нужно указать Django название директории, в котором будут находиться шаблоны. Для этого в модуле<em>hexlet_django_blog/settings.py</em>находим список TEMPLATES. Там в списке DIRS задаем значение BASE_DIR / 'templates':</p>
21 <p>Остается сделать небольшую настройку Django. Сначала нужно указать Django название директории, в котором будут находиться шаблоны. Для этого в модуле<em>hexlet_django_blog/settings.py</em>находим список TEMPLATES. Там в списке DIRS задаем значение BASE_DIR / 'templates':</p>
22 <p>Теперь нам нужно в конец списка INSTALLED_APPS добавить строку 'hexlet_django_blog'. Так Django будет знать, что шаблоны и код у нас находятся в данном пакете:</p>
22 <p>Теперь нам нужно в конец списка INSTALLED_APPS добавить строку 'hexlet_django_blog'. Так Django будет знать, что шаблоны и код у нас находятся в данном пакете:</p>
23 <p>Запустим сервер разработчика и откроем стартовую страницу. Там можно увидеть приветствие:</p>
23 <p>Запустим сервер разработчика и откроем стартовую страницу. Там можно увидеть приветствие:</p>
24 <p>Теперь создадим новую страницу<em>/about</em>. Для этого добавим маршрут, вью и шаблон:</p>
24 <p>Теперь создадим новую страницу<em>/about</em>. Для этого добавим маршрут, вью и шаблон:</p>
25 <p>Добавим в файл<em>hexlet_django_blog/urls.py</em>новый маршрут:</p>
25 <p>Добавим в файл<em>hexlet_django_blog/urls.py</em>новый маршрут:</p>
26 <p>Создадим новый обработчик<em>about</em>внутри<em>hexlet_django_blog/views.py</em>:</p>
26 <p>Создадим новый обработчик<em>about</em>внутри<em>hexlet_django_blog/views.py</em>:</p>
27 <p>Создадим шаблон<em>hexlet_django_blog/templates/about.html</em>и добавим туда следующий HTML:</p>
27 <p>Создадим шаблон<em>hexlet_django_blog/templates/about.html</em>и добавим туда следующий HTML:</p>
28 <p>Если открыть страницу<em>/about</em>, то отобразится добавленная страница:</p>
28 <p>Если открыть страницу<em>/about</em>, то отобразится добавленная страница:</p>
29 <h2>Выводы</h2>
29 <h2>Выводы</h2>
30 <p>Django сам выполняет множество действий: разбирает запросы, выбирает правильный обработчик, отправляет ответ клиенту. Однако он не может выполнить абсолютно всю работу. Поэтому программисту нужно сделать необходимый минимум. В этом уроке мы разобрались, как создавать маршруты и работать с их обработчиками и шаблонами, чтобы добавить новые страницы на сайте.</p>
30 <p>Django сам выполняет множество действий: разбирает запросы, выбирает правильный обработчик, отправляет ответ клиенту. Однако он не может выполнить абсолютно всю работу. Поэтому программисту нужно сделать необходимый минимум. В этом уроке мы разобрались, как создавать маршруты и работать с их обработчиками и шаблонами, чтобы добавить новые страницы на сайте.</p>