Шаблонный тег 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
Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.
Переходите на страницу учебных модулей «Девмана» и выбирайте тему.