РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
269 of 818 menu

Функция path

Функция path применяется для создания маршрутов в файле urls.py приложения. Она принимает строку маршрута, имя представления и опциональные параметры, такие как имя маршрута и дополнительные аргументы. Функция позволяет использовать конвертеры типов для извлечения параметров из URL.

Синтаксис

path(route, view, kwargs=None, name=None)

Параметры

  • route - строка, определяющая шаблон URL. Может содержать конвертеры типов для извлечения параметров.
  • view - представление, которое будет вызвано при совпадении с маршрутом. Это может быть функция-представление или класс.
  • kwargs (необязательный) - словарь с дополнительными аргументами, которые будут переданы в представление.
  • name (необязательный) - имя маршрута, которое используется для обращения к нему в шаблонах и представлениях.

Пример

Рассмотрим простой маршрут для главной страницы:

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

Результат выполнения кода:

"Главная страница загружена"

Пример

Создадим маршрут с параметром, используя конвертер int:

from django.urls import path from . import views urlpatterns = [ path('articles/<int:article_id>/', views.article_detail, name='article_detail'), ]

В представлении можно получить параметр из URL:

from django.shortcuts import render from .models import Article def article_detail(request, article_id): article = Article.objects.get(id=article_id) return render(request, 'article_detail.html', {'article': article})

Пример

Использование нескольких конвертеров в одном маршруте:

from django.urls import path from . import views urlpatterns = [ path('posts/<slug:post_slug>/<int:post_id>/', views.post_detail, name='post_detail'), ]

Представление принимает оба параметра:

from django.shortcuts import render from .models import Post def post_detail(request, post_slug, post_id): post = Post.objects.get(id=post_id, slug=post_slug) return render(request, 'post_detail.html', {'post': post})

Пример

Передача дополнительных аргументов через kwargs:

from django.urls import path from . import views urlpatterns = [ path('profile/', views.profile, kwargs={'user_id': 1}, name='profile'), ]

Представление получает дополнительный аргумент:

from django.shortcuts import render from .models import User def profile(request, user_id): user = User.objects.get(id=user_id) return render(request, 'profile.html', {'user': user})

Пример

Создание вложенных маршрутов с помощью include:

from django.urls import path, include from . import views urlpatterns = [ path('blog/', include('blog.urls')), path('users/', include('users.urls')), ]

В файле blog/urls.py:

from django.urls import path from . import views urlpatterns = [ path('', views.blog_index, name='blog_index'), path('post/<int:post_id>/', views.blog_post, name='blog_post'), ]

Смотрите также

  • функция re_path,
    которая позволяет использовать регулярные выражения для маршрутизации
  • функция include,
    которая используется для подключения маршрутов из других приложений
  • функция reverse,
    которая возвращает URL по имени маршрута
  • функция reverse_lazy,
    которая отложенно вычисляет URL по имени маршрута
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить