我试图了解这一行:url(r'^(?P<poll_id>\d+)/$', views.detail, name='detail'),
来自Django's tutorial如何创建视图。
特别是,我不了解以下内容:
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'),
)
答案 0 :(得分:9)
(?P<poll_id>...)
创建named group;您现在可以通过名称引用该组中匹配的内容。
视图将在调用时通过该名称传递关键字参数。
\d
是一个字符组,它匹配ASCII数据的数字位数(0
到9
)。 +
是量词;只有一个或多个数字匹配。
name='detail'
为网址格式命名,以便您稍后在创建反向网址时按名称引用它。请参阅Django手册中的Naming URL patterns。
总而言之,该模式匹配以数字开头的URL,后跟一个/
斜杠,导致Django调用views.detail
视图,将匹配的数字作为{{1参数。 poll_id
关键字可以轻松生成此视图的网址:
name
会生成{% url 'name' poll.id %}
的网址。