Django url匹配urls.py中的规则不匹配

时间:2011-12-13 20:42:14

标签: python django django-urls

urls.py

urlpatterns = patterns('',
    (r'^page/\w+/$', get_page),
    (r'', main),
)

致电:http://localhost:8081/page/cricket

调用,函数而不是 get_page

我该如何做到这一点?

2 个答案:

答案 0 :(得分:3)

正则表达式错误。它会匹配http://localhost:8081/page/cricket/http://localhost:8081/page/dog/。它与http://localhost:8081/page/cricket不匹配,因为正则表达式最后需要/。

根据您的评论和问题,您可能需要以下内容:

   (r'^page/(?P<loc>.*)', get_page)

这也会将page/之后的所有内容传递给命名参数“loc”中的get_page函数。

如果您对特殊符号的含义有疑问,请参阅Python's regular expression reference

答案 1 :(得分:1)

^page/\w+/$'是一个正则表达式,匹配以page/开头的字符串,后跟一个或多个字母,后跟/,不再包含字符。

page/cricket包含前两个元素,但不包含第三个元素,因此不匹配。