Функции django.urls для использования в конфигурациях URL

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 ), содержащим регулярное выражение, совместимое с модулем re Python. В строках обычно используется синтаксис необработанной строки ( r'' ), поэтому они могут содержать последовательности, например, \d без необходимости экранировать обратную косую черту с помощью другой косой черты. Когда совпадение найдено, группы, захваченные из регулярного выражения, передаются в представление - как именованные параметры, если группы названы, или как позиционные параметры в противном случае. Значения передаются в виде строк без преобразования типа.

Параметры view , kwargs и name такие же , как для path() .

include()

include( модуль , пространство имен = Нет )
include( список_образцов )
include( (Pattern_list , app_namespace) , пространство имен = нет )

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

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

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

Настройки:
  • module - модуль конфигурации URL (или имя модуля)
  • namespace ( str ) - Пространство имен экземпляра для строк URL, которые нужно включить
  • pattern_list - Итерируемый объект path() или экземпляры re_path() .
  • app_namespace ( str ) - пространство имен приложения для строк URL, которые нужно включить

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

register_converter()

register_converter( конвертер , имя_типа )

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

Параметр converter - это класс преобразователя и type_name имя преобразователя, используемого в шаблонах путей. См. Пример в разделе « Регистрация настраиваемых преобразователей пути» .

Функции django.conf.urls для использования в конфигурациях URL

static()

static.static( префикс , 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( регулярное выражение , представление , kwargs = None , name = None )

Эта функция является псевдонимом django.urls.re_path() .

Не рекомендуется с версии 3.1: Псевдоним 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() . Если вы реализуете настраиваемое представление, убедитесь, что оно принимает параметр request и возвращает ответ HttpResponseServerError .

Copyright ©2020 All rights reserved