В Django для прописывания относительных путей URL в функциях используется механизм именованных URL-паттернов.
1. Сначала нужно определить URL-паттерны в файле urls.py
вашего Django проекта. Например:
from django.urls import path from . import views app_name = 'myapp' urlpatterns = [ path('', views.index, name='index'), path('about/', views.about, name='about'), path('contact/', views.contact, name='contact'), ]
В данном примере определены три URL-паттерна index
, about
и contact
.
2. В функции, где вы хотите использовать относительные пути URL, вы можете использовать функцию reverse
для генерации URL по его имени. Например:
from django.shortcuts import render, reverse def index(request): context = { 'about_url': reverse('myapp:about'), 'contact_url': reverse('myapp:contact'), } return render(request, 'index.html', context)
3. Ваш шаблон index.html
может выглядеть следующим образом:
<!DOCTYPE html> <html> <head> <title>My App</title> </head> <body> <h1>Welcome to my app!</h1> <p><a href="{{ about_url }}">About</a></p> <p><a href="{{ contact_url }}">Contact</a></p> </body> </html>
В данном примере ссылки на страницы "About" и "Contact" создаются с помощью соответствующих URL-паттернов, которые были определены в urls.py
.
Прописывая относительные пути URL с использованием именованных URL-паттернов в Django, вы можете легко изменять URL-адреса в будущем, не изменяя код во всех местах, где они используются.