[英]Understanding Django's urlconf
我试图理解这一行: url(r'^(?P<poll_id>\\d+)/$', views.detail, name='detail'),
来自Django关于如何创建视图的教程 。
特别是,我不明白以下几点:
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'),
)
(?P<poll_id>...)
创建一个命名组 ; 您现在可以通过名称引用该组中匹配的任何内容。
调用时,视图将通过该名称传递一个关键字参数。
\\d
是一个字符组,它匹配数字(ASCII数据为0
到9
)。 +
是量词; 只有一个或多个数字匹配。
name='detail'
命名URL模式,以便稍后在创建反向URL时按名称引用它。 请参阅Django手册中的命名URL模式 。
总而言之,该模式匹配以数字开头的URL,后跟一个/
斜杠,导致Django调用views.detail
视图,将匹配的数字作为poll_id
参数传递。 name
关键字可以轻松生成此视图的URL:
{% url 'name' poll.id %}
会生成一个URL到http://yourserver/[digits of poll.id]/
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.