Шаблонный тег url в Django

Проставлять прямые ссылки на страницы — ненадёжно. Сегодня ваш сайт у вас на компьютере по адресу 127.0.0.1, завтра он на сервере, по адресу mysite.org. Если ставить полные пути до страниц (например, 127.0.0.1/profile/Liza), то при каждом переезде сайта придётся заменять все ссылки во всём проекте.

Чтобы такого избежать, в Django есть удобный механизм именования ссылок. Например, главной можно проставить название index, а далее поставить ссылку на главную с помощью шаблонного тега:

<a href="{% url 'index' %}">ссылка</a>

В процессе рендеринга Django подменит это на ссылку на ваш сайт. Если вы работаете на своём компьютере, то это будет выгллядеть так:

<a href="127.0.0.1">ссылка</a>

Имена ссылок можно узнать в файле urls.py. Они передаются как параметр name при создании пути (path):

path('', views.index, name='index')

Бывают более изысканные случаи: например, страница товара в магазине. Тогда помимо имени ссылки понаобится передать какого товара эта страница: газонокосилки или хлебопечки?

Если ваш путь требует параметр slug, то вот как его передать:

{% url 'index' slug='газонокосилка' %}

Попробуйте бесплатные уроки по Python

Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.

Переходите на страницу учебных модулей «Девмана» и выбирайте тему.