Spec-Zone.ru › Django 4.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 должен быть строкой или 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().

Изменено в Django 2.2.25:

В более старых версиях для route , заканчивающегося на $, не требовалось полное совпадение.

include()

include(module, namespace=None)
include(pattern_list)
include((pattern_list, app_namespace), namespace=None)

Функция, которая принимает полный путь импорта Python к другому модулю URLconf, который должен быть «включен» в этом месте. Дополнительно можно указать пространство имён приложения (пространство имён приложения) и пространство имён экземпляра (пространство имён экземпляра), куда будут включены записи.

Обычно пространство имён приложения должно быть указано включаемым модулем. Если пространство имён приложения установлено, аргумент namespace может использоваться для установки другого пространства имён экземпляра.

include() также принимает в качестве аргумента итерируемый объект, возвращающий шаблоны URL, или пару из двух элементов, содержащую такой итерируемый объект и имена пространств имён приложения.

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

См. Включение других URLconf и Пространства имён 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/4.2/ref/urls/

Spec-Zone.ru

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