这些是我的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.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top