我正在阅读 django 教程,虽然现在几乎所有内容看起来都很清楚,但在匹配 url 时我无法理解正则表达式:
r'^(?P<poll_id>\d+)/$
什么是(?P<poll_id>\d+)
做 ?
我的理解是在剥离 "34/"
之后来自 "polls/34/"
, polls.url
正在调用,关键字 urlpatterns
正在寻找,但如何poll_id
得到这个值 34
?
我只知道一点正则表达式,所以这就是我可能难以阅读的原因。 此外,这是我用于此问题的引用:Tutorial Part3
最佳答案
这是一个将 poll_id
(一个数字)作为变量的正则表达式。
对应的view是:
def detail(request, poll_id):
return HttpResponse("You're looking at poll %s." % poll_id)
现在,当您转到 example.com/polls/34/
时,它知道您正在寻找 poll
号码 34
,并且它将其作为 poll_id
引入 View 。
所以在您看来,poll_id = 34
。这使您可以显示或操作此特定民意调查。
本质上,在这种情况下,正则表达式的要点是允许您查看大量特定的民意调查,而不必为每个民意调查创建一个明确的 url。
澄清一下,这个正则表达式是说取任何数字 \d+
,将其保存为 poll_id
,然后使用那个 poll_id
继续这个 View .
关于Python:无法理解正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14638593/