Вопрос

Это мой django urlconf:

urlpatterns = patterns('',
    ('^hello/$', hello),
    (r'^polls/$', 'mysite.polls.views.index'),
    (r'^polls/(?P<poll_id>\d+)/$', 'mysite.polls.views.detail'),
    (r'^polls/(?P<poll_id>\d+)/results/$', 'mysite.polls.views.results'),
    (r'^polls/(?P<poll_id>\d+)/vote/$', 'mysite.polls.views.vote'),
    (r'^admin/', include(admin.site.urls)),
)

Я не понимаю, что делает R в этом Regex:

r'^polls/$

Я не понимаю, что делает это Regeex:

(?P<poll_id>\d+)

И я не понимаю, почему в:

(r'^admin/', include(admin.site.urls))

Здесь нет $ Знак и он все еще работает ...

Я не понимаю, какой urlconf я должен добавить, чтобы увидеть сайт под http://127.0.0.1:8000/

Это было полезно?

Решение

«R» обозначает «сырую» строку, которая облегчает жизнь при попытке написать REGEXES (вы не заканчиваетесь избегать символов Escape). http://docs.cython.org/Library/re.html#raw-string-notation.

Что касается второго вопроса, он создает названную группу совпадений из 1 или более цифр и передает это значение для представления как «POLL_ID». http://docs.djangoProject.com/ru/1.2/topics/http/urls/#Zamed-groups

Причина, по которой нет $ в строке администратора, заключается в том, что вы хотите, чтобы все URL-адреса, которые начинаются с / admin, которые будут переданы в приложение администратора. $ - это специальный символ, который определяет конец строки. Поэтому, если бы был $, то только URL / admin будет передан в Admin App, а не / admin / foo или / admin / foo / bar.

Другие советы

Мой Python Regex ржавый, но здесь идет:

r'^polls/$

то ^ значит начинается с.
То $ означает конец

(?P<poll_id>\d+) означает целое число \d+ который в моем коде будет введен в переменную poll_id

(r'^admin/', include(admin.site.urls))
не имеет $, потому что вы не хотите, чтобы URL-адреса заканчивается там. Вы хотите, чтобы admin / Motchelse будет передан в ваш класс admin.sites.urls.

То r означает, что предусмотренная строка - это сырье, и escape символы должны игнорироваться. То (r'^admin/', include(admin.site.urls)) У линии нет $ Потому что это включает в себя для другого URL-конфета. Итак, конец $ где-то в admin.site.urls.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top