Понимание urlconf Django

Я пытаюсь понять эту строку: url(r'^(?P<poll_id>\d+)/$', views.detail, name='detail'), С Джанго учебник о том, как создавать представления.

в частности, я не понимаю следующее:

  • ?P
  • \d+
  • name= 'detail'

urls.py

urlpatterns = patterns('',
    # ex: /polls/
    url(r'^$', views.index, name='index'),
    # ex: /polls/5/
    url(r'^(?P<poll_id>\d+)/$', views.detail, name='detail'),
    # ex: /polls/5/results/
    url(r'^(?P<poll_id>\d+)/results/$', views.results, name='results'),
    # ex: /polls/5/vote/
    url(r'^(?P<poll_id>\d+)/vote/$', views.vote, name='vote'),
)

1 ответов


  • (?P<poll_id>...) создает группы; теперь вы можете ссылаться на то, что было сопоставлено в этой группе по имени.

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

  • \d группа символа, он соответствует цифрам (0 до 9 для данных ASCII). The + является квантором; будет соответствовать только 1 или более цифр.

  • name='detail' имена URL-адрес шаблон, чтобы вы могли ссылаться на него по имени позже при создании обратных URL-адресов. См.именование шаблонов URL в руководстве Django.

в целом, этот шаблон соответствует URL-адресу, который начинается с цифр, а затем просто / Слэш, в результате чего Django вызывает views.detail просмотр, передавая совпадающие цифры как