django.urls функции для использования в URLconfs
path()
-
path(route, view, kwargs=None, name=None)
Возвращает элемент для включения в urlpatterns. Например:
from django.urls import include, path
urlpatterns = [
path("index/", views.index, name="main-view"),
path("bio/<username>/", views.bio, name="bio"),
path("articles/<slug:title>/", views.article, name="article-detail"),
path("articles/<slug:title>/<int:section>/", views.section, name="article-section"),
path("blog/", include("blog.urls")),
...,
]
Аргумент route должен быть строкой или gettext_lazy() (см. Перевод шаблонов URL), содержащей шаблон URL. Строка может содержать угловые скобки (например, <username> выше), чтобы захватить часть URL и передать её в виде ключевого аргумента в представление. Угловые скобки могут включать спецификацию преобразователя (например, часть int из <int:section>), которая ограничивает совпадающие символы и может также изменить тип переменной, передаваемой в представление. Например, <int:section> соответствует строке десятичных цифр и преобразует значение в int. Подробнее см. Как Django обрабатывает запрос.
Аргумент view — это функция представления или результат as_view() для представлений на основе классов. Он также может быть django.urls.include().
Аргумент kwargs позволяет передавать дополнительные аргументы функции или методу представления. Пример см. в Передача дополнительных параметров функциям представления.
См. Именование шаблонов URL, чтобы понять, почему аргумент name полезен.
re_path()
-
re_path(route, view, kwargs=None, name=None)
Возвращает элемент для включения в urlpatterns. Например:
from django.urls import include, re_path
urlpatterns = [
re_path(r"^index/$", views.index, name="index"),
re_path(r"^bio/(?P<username>\w+)/$", views.bio, name="bio"),
re_path(r"^blog/", include("blog.urls")),
...,
]
Аргумент route должен быть строкой или gettext_lazy() (см. Перевод шаблонов URL), содержащей регулярное выражение, совместимое с модулем Python re. Строки обычно используют синтаксис сырых строк (r''), чтобы они могли содержать последовательности, такие как \d без необходимости экранирования обратной косой черты ещё одной обратной косой чертой. При совпадении захваченные группы из регулярного выражения передаются в представление — в виде именованных аргументов, если группы именованные, и в виде позиционных аргументов в противном случае. Значения передаются в виде строк без какого-либо преобразования типов.
Когда route заканчивается на $, весь запрашиваемый URL, соответствующий path_info, должен соответствовать шаблону регулярного выражения (re.fullmatch() используется).
Аргументы view, kwargs и name такие же, как для path().
В более ранних версиях полное совпадение не требовалось для route , которое заканчивается на $.
include()
-
include(module, namespace=None) -
include(pattern_list) -
include((pattern_list, app_namespace), namespace=None) -
Функция, которая принимает полный имённый путь Python к другому модулю URLconf, который должен быть «включён» в это место. При необходимости можно также указать пространство имён приложения пространство имён приложения и пространство имён экземпляра, куда будут включены записи.
Обычно пространство имён приложения должно быть указано включённым модулем. Если задано пространство имён приложения, аргумент
namespaceможет использоваться для задания другого пространства имён экземпляра.include()также принимает в качестве аргумента либо итерируемый объект, возвращающий шаблоны URL, либо 2-кортеж, содержащий такой итерируемый объект плюс имена пространств имён приложения.Параметры:
См. Включение других URLconfs и Пространства имён URL и включённые URLconf.
register_converter()
-
register_converter(converter, type_name)
Функция для регистрации преобразователя для использования в path() route.
Аргумент converter — это класс преобразователя, а type_name — имя преобразователя для использования в шаблонах путей. Пример см. в Регистрация пользовательских преобразователей путей.
django.conf.urls функции для использования в URLconfs
static()
-
static.static(prefix, view=django.views.static.serve, **kwargs)
Вспомогательная функция для возврата шаблона URL для обработки файлов в режиме отладки:
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
handler400
-
handler400
Вызываемый объект или строка, представляющая полный имённый путь Python к представлению, которое должно быть вызвано, если клиент HTTP отправил запрос, вызвавший ошибку, и ответ со статусом 400.
По умолчанию это django.views.defaults.bad_request(). Если вы реализуете пользовательское представление, убедитесь, что оно принимает аргументы request и exception и возвращает HttpResponseBadRequest.
handler403
-
handler403
Вызываемый объект или строка, представляющая полный имённый путь Python к представлению, которое должно быть вызвано, если у пользователя нет необходимых разрешений для доступа к ресурсу.
По умолчанию это django.views.defaults.permission_denied(). Если вы реализуете пользовательское представление, убедитесь, что оно принимает аргументы request и exception и возвращает HttpResponseForbidden.
handler404
-
handler404
Вызываемый объект или строка, представляющая полный имённый путь Python к представлению, которое должно быть вызвано, если ни один из шаблонов URL не соответствует.
По умолчанию это django.views.defaults.page_not_found(). Если вы реализуете пользовательское представление, убедитесь, что оно принимает аргументы request и exception и возвращает HttpResponseNotFound.
handler500
-
handler500
Вызываемый объект или строка, представляющая полный имённый путь Python к представлению, которое должно быть вызвано в случае ошибок сервера. Ошибки сервера возникают при возникновении ошибок во время выполнения в коде представления.
По умолчанию это django.views.defaults.server_error(). Если вы реализуете пользовательское представление, убедитесь, что оно принимает аргумент request и возвращает HttpResponseServerError.
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/5.0/ref/urls/