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('weblog/', 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'^weblog/', include('blog.urls')),
...
]
Аргумент route должен быть строкой или gettext_lazy() (см. Перевод шаблонов URL), содержащей регулярное выражение, совместимое с модулем Python re. Строки обычно используют синтаксис сырых строк (r''), чтобы они могли содержать последовательности, например \d без необходимости экранировать обратную косую черту еще одной обратной косой чертой. При совпадении захваченные группы из регулярного выражения передаются в представление — в виде именованных аргументов, если группы именованные, и как позиционные аргументы в противном случае. Значения передаются как строки без какого-либо преобразования типа.
Аргументы 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, или пару из двух элементов, содержащих такой итерируемый объект и имена пространств имен приложения.Параметры:
См. Включение других URLconf и Пространства имен URL и включенные URLconf.
В более старых версиях эта функция находится в django.conf.urls. Старое расположение по-прежнему работает для обратной совместимости.
register_converter()
-
register_converter(converter, type_name)[source]
Функция для регистрации преобразователя для использования в 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)
url()
-
url(regex, view, kwargs=None, name=None)[source]
Эта функция является псевдонимом для django.urls.re_path(). Она, вероятно, будет устаревшей в будущей версии.
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(). Если вы реализуете пользовательское представление, убедитесь, что оно возвращает HttpResponseServerError.
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/2.1/ref/urls/