在Django中处理url匹配中的'/'

时间:2014-09-09 09:10:07

标签: python regex django

我是Django的新手。我在views.py和相应的正则表达式中编写了一个函数func(),用于匹配urls.py中的url,如下所示:

   (r'callfunc/(?P<param1>(\w+|\d+|\-){0,50})/(?P<param2>(\w+|\d+|\-){0,50})/$', 'func')

问题是有时'/'出现在param1字符串中,然后正则表达式匹配在urls.py中失败,应用程序卡在匹配中。有没有办法正确处理,以便即使任何/来自param1,param1正确设置?

1 个答案:

答案 0 :(得分:1)

如何手动解决带有额外斜线的网址?让我们说:callfunc/foo/bar/baz/。 bar是否属于param1或param2?我认为在这种情况下,不可能恰当地区分这两个参数。

您可以尝试添加一个特殊的断路器:r'^callfunc/(?P<param1>[\w\d\-/]{1,50})/special-versus/(?P<param2>[\w\d\-/]{1,50})/$'隔离开关或多或少不可能出现在您的参数上。