reg ex django url conf
题
这些是我的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的r是什么:
r'^polls/$
我不明白这条正则是什么:
(?P<poll_id>\d+)
我不明白为什么:
(r'^admin/', include(admin.site.urls))
没有 $
签名,它仍然有效...
我不明白我要添加的urlconf,以查看下面的网站 http://127.0.0.1:8000/
解决方案
“ r”表示一个“原始”字符串,这使得在尝试编写Regexes时的生活更轻松(您最终不会逃脱逃生角色)。 http://docs.python.org/library/re.html#raw-notation
就第二个问题而言,它创建了一个命名的1个或更多数字的匹配组,并将该值传递给视图为“ poll_id”。 http://docs.djangoproject.com/en/1.2/topics/http/urls/#named-groups
管理字符串上没有$的原因是,您希望将所有以 /管理员开头的URL传递给管理员应用程序。 $是定义字符串末端的特殊字符。因此,如果有$,则仅将URL /admin传递给管理应用程序,而不是 /admin /foo或 /admin /foo /bar。
其他提示
我的python正直是生锈的,但这里有:
r'^polls/$
这 ^
手段从。
这 $
意味着结局
(?P<poll_id>\d+)
意味着整数 \d+
在我的代码中,将被放入变量 poll_id
(r'^admin/', include(admin.site.urls))
没有$,因为您可能不希望URL结束。您希望管理员/somethingss将其传递给您的admin.sites.urls类。
这 r
表示提供的字符串是原始的,并且应忽略逃生字符。这 (r'^admin/', include(admin.site.urls))
线没有 $
因为它包括另一个URL confs。所以结局 $
在某个地方 admin.site.urls
.