В любом приложении или проекте, над которым вы работаете, наличие путей маршрута или URL-адресов добавляет дополнительный уровень функциональности для улучшения взаимодействия с пользователем. Возможность направлять пользователя с места на место с помощью навигации облегчает создателю задачу, чтобы пользователь увидел то, что он хочет, чтобы пользователь увидел. В React есть React Router, в Rails есть файл route.rb. Сегодня я расскажу, как настроить URL-адреса в Django.

Прежде чем перейти к этому, я использую термины «маршрут», «путь» и «url» довольно взаимозаменяемо. Это почти одно и то же. URL-адрес определяет, куда идти в проекте, который затем отображает что-то пользователю. Не запутайтесь.

URL-адрес (унифицированный указатель ресурсов), обычно называемый веб-адресом. Это то, что отображается в адресной строке вашего браузера. Все, что набирается или отображается, представляет собой путь, по которому пытается пройти пользователь (то есть вы). Если этот путь существует, все, к чему он приведет, появится на вашем экране. Может быть, это страница входа в систему, или место, где вы можете отредактировать свой профиль, или написать этот замечательный пост в блоге. Если вы создаете свой собственный проект, размер которого превышает одну страницу, вам необходимо иметь способы направлять пользователя с места на место. Обычно это можно сделать с помощью ссылок, но для того, чтобы эти ссылки работали, вам необходимо спланировать маршруты на серверной части. В случае с Django это работает так.

При создании нового проекта в Django вы найдете файл «urls.py», и если вы откроете его, то увидите что-то вроде этого:

urlpatterns = [
 path('admin/', admin.site.urls),
]

Такие строки создают шаблон для URL-адреса. Если этот URL-адрес начинается с «admin», Django попытается найти соответствующее представление и выполнить любое действие, определенное в этом представлении.

Здесь мы также можем добавить наши собственные URL-адреса и связать их с другими приложениями, созданными в проекте. В следующих примерах я буду ссылаться на код сайта социальной сети, который я создал. Итак, в том же файле «urls.py» я добавил:

urlpatterns = [
 path('admin/', admin.site.urls),
 path('', include('landing.urls')),
 path('social/', include('social.urls')),
]

Пустые кавычки во второй строке URL-адреса означают, что это будет корневой путь для приложения или место по умолчанию, в котором пользователь окажется при использовании приложения.

Обе новые строки означают, что Django будет просматривать папки целевых и социальных приложений и просматривать URL-адреса. Эти файлы не создаются автоматически, их нужно создавать вручную в любом редакторе кода, который вы используете. Давайте посмотрим на мой файл «landing/urls.py» и посмотрим, что я настроил с другой стороны.

from django.urls import path
from landing.views import Index
urlpatterns = [
 path('', Index.as_view(), name='index'),
]

Поскольку я хочу отображать все, что находится в представлении Index. Я импортирую его вверху файла. При определении URL-адреса я использую метод as_view() для представления индекса, а затем присваиваю этому URL-адресу имя index. Именованные URL-адреса упрощают обращение к ним в шаблоне на протяжении всего проекта.

Поскольку URL-адрес отображает индекс как представление, мне нужно указать этому представлению, что отображать, чтобы завершить URL-адрес. В моем представлении Index я говорю:

return render(request, 'landing/index.html')

Теперь я создаю шаблон в лендинговом приложении под названием «index.html», и любой код, который там есть, будет отображаться пользователю!

Ссылаться на URL-адреса в других шаблонах очень просто, и это связано с именованием URL-адресов, как показано выше. Django имеет синтаксис тегов, который запускает некоторую логику, например, цикл. Использование «{% %}» запустит любой код, размещенный в этих тегах, поэтому, если мы хотим встроить наш URL-адрес в тег ссылки, мы можем просто:

<a href="{% url 'index' %}" class="btn btn-light mr-2">Index</a>

Классовая часть этого тега — это просто стиль, не слишком зацикливайтесь на этом.

Это отобразит ссылку для пользователя, которая при нажатии направит пользователя к URL-адресу индекса, который мы определили!

Понимание URL-адресов необходимо для создания любого проекта, независимо от того, какая структура. Это значительно улучшает взаимодействие с пользователем и, что более важно, помогает продемонстрировать великолепный код, над которым вы так усердно работали!