django.conf.urls служебные функции
patterns()
-
patterns(prefix, pattern_description, ...)[source]
Устарело начиная с версии 1.8: urlpatterns должно быть обычным списком экземпляров django.conf.urls.url().
Функция, которая принимает префикс и произвольное количество шаблонов URL и возвращает список шаблонов URL в формате, необходимом Django.
Первый аргумент функции patterns() — строка prefix. Вот пример URLconf из обзора Django:
from django.conf.urls import patterns, url
urlpatterns = patterns('',
url(r'^articles/([0-9]{4})/$', 'news.views.year_archive'),
url(r'^articles/([0-9]{4})/([0-9]{2})/$', 'news.views.month_archive'),
url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', 'news.views.article_detail'),
)
В этом примере у каждого представления есть общий префикс — 'news.views'. Вместо того, чтобы набирать его для каждой записи в urlpatterns, вы можете использовать первый аргумент функции patterns() для указания префикса, применяемого к каждой функции представления.
Учитывая это, приведенный выше пример можно записать более лаконично как:
from django.conf.urls import patterns, url
urlpatterns = patterns('news.views',
url(r'^articles/([0-9]{4})/$', 'year_archive'),
url(r'^articles/([0-9]{4})/([0-9]{2})/$', 'month_archive'),
url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', 'article_detail'),
)
Обратите внимание, что вы не ставите конечную точку (".") в префиксе. Django добавляет её автоматически.
Остальные аргументы должны быть кортежами в таком формате:
(regular expression, Python callback function [, optional_dictionary [, optional_name]])
Параметры optional_dictionary и optional_name описаны в Передача дополнительных параметров функциям представления.
Примечание
Поскольку patterns() — это вызов функции, она принимает максимум 255 аргументов (в данном случае шаблонов URL). Это ограничение для всех вызовов функций Python. На практике это редко представляет проблему, поскольку вы обычно структурируете свои шаблоны URL модульно с использованием разделов include(). Однако, на всякий случай, если вы достигнете предела 255 аргументов, знайте, что patterns() возвращает список Python, так что вы можете разбить построение списка.
urlpatterns = patterns('',
...
)
urlpatterns += patterns('',
...
)
Списки Python имеют неограниченный размер, поэтому нет ограничений на количество шаблонов URL, которые вы можете создать. Единственное ограничение — вы можете создать только 254 за раз (255-й аргумент — это начальный префикс).
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)
Аргумент view изменился со строки ('django.views.static.serve') на функцию.
url()
-
url(regex, view, kwargs=None, name=None, prefix='')[source]
urlpatterns должен быть списком экземпляров url(). Например:
urlpatterns = [
url(r'^index/$', index_view, name="main-view"),
...
]
Эта функция принимает пять аргументов, большинство из которых необязательны:
url(regex, view, kwargs=None, name=None, prefix='')
Параметр kwargs позволяет передавать дополнительные аргументы функции или методу представления. См. Передача дополнительных параметров функциям представления для примера.
См. Именование шаблонов URL, чтобы понять, почему параметр name полезен.
Устарело начиная с версии 1.8: Поддержка аргументов view типа строка устарела и будет удалена в Django 1.10. Передайте вызываемый объект вместо него.
Параметр prefix имеет то же значение, что и первый аргумент функции patterns() и актуален только при передаче строки в качестве параметра view.
include()
-
include(module, namespace=None, app_name=None)[source] -
include(pattern_list) -
include((pattern_list, app_namespace, instance_namespace)) -
Функция, принимающая полный путь импорта Python к другому модулю URLconf, который должен быть «включён» в это место. Также можно указать пространство имён приложения и пространства имён экземпляра, куда будут включены записи.
include()также принимает в качестве аргумента итерируемый объект, возвращающий шаблоны URL, или кортеж из 3 элементов, содержащий такой итерируемый объект, а также имена пространств имён приложения и экземпляра.Параметры: - module — Модуль URLconf (или имя модуля)
- namespace (строка) — Пространство имён экземпляра для включаемых записей URL
- app_name (строка) — Пространство имён приложения для включаемых записей URL
-
pattern_list — Итерируемый объект экземпляров
django.conf.urls.url() - app_namespace (строка) — Пространство имён приложения для включаемых записей URL
- instance_namespace (строка) — Пространство имён экземпляра для включаемых записей URL
См. Включение других URLconf и Пространства имён URL и включенные URLconf.
handler400
-
handler400
Вызываемый объект или строка, представляющая полный путь импорта Python к представлению, которое должно вызываться, если HTTP-клиент отправил запрос, вызвавший ошибку, и ответ со статусом 400.
По умолчанию это 'django.views.defaults.bad_request'. Этого значения достаточно.
См. документацию по представлению 400 (ошибка запроса) для получения дополнительной информации.
handler403
-
handler403
Вызываемый объект или строка, представляющая полный путь импорта Python к представлению, которое должно вызываться, если у пользователя нет необходимых разрешений для доступа к ресурсу.
По умолчанию это 'django.views.defaults.permission_denied'. Этого значения достаточно.
См. документацию по представлению 403 (HTTP запрещено) для получения дополнительной информации.
handler404
-
handler404
Вызываемый объект или строка, представляющая полный путь импорта Python к представлению, которое должно вызываться, если ни один из шаблонов URL не совпадает.
По умолчанию это 'django.views.defaults.page_not_found'. Этого значения достаточно.
См. документацию по представлению 404 (HTTP не найдено) для получения дополнительной информации.
handler500
-
handler500
Вызываемый объект или строка, представляющая полный путь импорта Python к представлению, которое должно вызываться в случае ошибок сервера. Ошибки сервера возникают при возникновении ошибок во время выполнения в коде представления.
По умолчанию это 'django.views.defaults.server_error'. Этого значения достаточно.
См. документацию по представлению 500 (HTTP внутренняя ошибка сервера) для получения дополнительной информации.
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/1.8/ref/urls/