我正在使用Django,并希望匹配网址domain.com/w
和domain.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的可选元素而不将其作为参数捕获?
答案 0 :(得分:8)
是的,使用非分组括号(?:...)
,如下所示:
url(r'^w(?:ords)?$', 'app_name.views.view_words')