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), содержащей регулярное выражение, совместимое с модулем re Python. Строки обычно используют синтаксис сырой строки (r''), чтобы они могли содержать последовательности, такие как \d без необходимости экранирования обратной косой черты другой обратной косой чертой. Когда производится соответствие, захваченные группы из регулярного выражения передаются в представление — как именованные аргументы, если группы именованные, и как позиционные в противном случае. Значения передаются как строки без какого-либо преобразования типов.
Когда route заканчивается $, весь запрашиваемый URL, сопоставляемый с path_info, должен соответствовать шаблону регулярного выражения (re.fullmatch() используется).
Аргументы view, kwargs и name такие же, как и для path().
include()
-
include(module, namespace=None)[source] -
include(pattern_list) -
include((pattern_list, app_namespace), namespace=None) -
Функция, которая принимает полный путь импорта Python к другому модулю URLconf, который должен быть «включён» в это место. Необязательно, можно также указать пространство имён приложения и пространство имён экземпляра, в которые будут включены записи.
Обычно пространство имён приложения должно быть указано включённым модулем. Если установлено пространство имён приложения, аргумент
namespaceможет использоваться для задания другого пространства имён экземпляра.include()также принимает в качестве аргумента либо итерируемый объект, возвращающий шаблоны URL, либо 2-кортеж, содержащий такой итерируемый объект и имена пространств имён приложения.Параметры:
См. Включение других URLconf и Пространства имён URL и включенные URLconf.
register_converter()
-
register_converter(converter, type_name)[source]
Функция для регистрации преобразователя для использования в path() route.
Аргумент converter — это класс преобразователя, а type_name — это имя преобразователя, используемое в шаблонах путей. См. Регистрация пользовательских преобразователей путей для примера.
Устарело начиная с версии 5.1: Переопределение существующих преобразователей устарело.
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.1/ref/urls/