Django中的非捕获可选URL元素

时间:2013-12-22 21:45:52

标签: python regex django urlconf

我正在使用Django,并希望匹配网址domain.com/wdomain.com/words。我有一个表单的配置行:

url(r'^w(ords)?$', 'app_name.views.view_words')

view_words只接受一个参数(request),但似乎Django捕获正则表达式的(ords)部分并将其传递给视图。当我从正则表达式中删除(ords)并访问domain.com/w时,它可以正常运行。

Django文档和类似的StackOverflow问题涵盖了如何捕获可选的URL参数,但我想要从URL捕获任何参数。有没有办法匹配URL的可选元素而不将其作为参数捕获?

1 个答案:

答案 0 :(得分:8)

是的,使用非分组括号(?:...),如下所示:

url(r'^w(?:ords)?$', 'app_name.views.view_words')

另请参阅documentation of python regular expressions