Spec-Zone.ru › Django 5.2

Функции 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

Аргумент route должен быть строкой или gettext_lazy() (см. Перевод шаблонов URL), содержащей шаблон URL. Строка может содержать угловые скобки (например, <username> выше), чтобы захватить часть URL и передать её как аргумент ключевого слова в представление. Угловые скобки могут включать спецификацию преобразователя (например, int часть <int:section>), которая ограничивает сопоставляемые символы и может также изменить тип переменной, передаваемой представлению. Например, <int:section> соответствует строке десятичных цифр и преобразует значение в int.

При обработке запроса Django начинает с первого шаблона в urlpatterns и продвигается по списку, сравнивая запрошенный URL с каждым шаблоном, пока не найдёт совпадение. Подробнее см. Как Django обрабатывает запрос.

Шаблоны не сопоставляют параметры GET и POST, или имя домена. Например, в запросе на https://www.example.com/myapp/, URLconf будет искать myapp/. В запросе на https://www.example.com/myapp/?page=3, URLconf также будет искать myapp/.

view

Аргумент view — это функция представления или результат as_view() для представлений на основе классов. Он также может быть django.urls.include().

Когда Django находит соответствующий шаблон, он вызывает указанную функцию представления с объектом HttpRequest в качестве первого аргумента и любыми «захваченными» значениями из маршрута в качестве аргументов ключевого слова.

kwargs

Аргумент kwargs позволяет передавать дополнительные аргументы в функцию или метод представления. См. Передача дополнительных параметров функциям представления для примера.

name

Именование URL позволяет однозначно ссылаться на него из других частей Django, особенно из шаблонов. Эта мощная функция позволяет вносить глобальные изменения в шаблоны URL вашего проекта, затрагивая только один файл.

См. Именование шаблонов 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, или кортеж из двух элементов, содержащий такой итерируемый объект плюс имена пространств имён приложения.

Parameters:
  • module – Модуль URLconf (или имя модуля)
  • namespace (str) – Пространство имён экземпляра для включаемых записей URL
  • pattern_list – Итерируемый набор элементов path() и/или re_path().
  • app_namespace (str) – Пространство имён приложения для включаемых записей URL

См. Включение других URLconfs и Пространства имён URL и включённые URLconfs.

register_converter()

register_converter(converter, type_name) [source]

Функция для регистрации преобразователя для использования в path() route.

Аргумент converter — класс преобразователя, а type_name — имя преобразователя для использования в шаблонах путей. См. Регистрация пользовательских преобразователей путей для примера.

Deprecated since version 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.2/ref/urls/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API