如何在Django中编写此URL?

时间:2010-04-06 21:08:05

标签: regex django url

(r'^/(?P<the_param>[a-zA-z0-9_-]+)/$','myproject.myapp.views.myview'),

如何更改此项以便“the_param”接受URL(已编码)作为参数?

所以,我想传递一个URL。

mydomain.com/http%3A//google.com

编辑:我应该删除正则表达式,就像这样......然后它会起作用吗?

(R '^ /(ΔP[*])/ $', 'myproject.myapp.views.myview'),

3 个答案:

答案 0 :(得分:2)

%.添加到字符类:

[a-zA-Z0-9_%.-]

注意:您不需要在字符类中转义特殊字符,因为特殊字符在字符集中失去意义。 -如果不用于指定范围,则应使用反斜杠进行转义或放在开头(对于python 2.4.x2.5.x2.6.x)或者字符集的末尾(python 2.7.x)因此[a-zA-Z0-9_%-.]之类的内容会引发错误。

答案 1 :(得分:0)

你至少需要这样的东西:

(r'^the/uri/is/(?P<uri_encoded>[a-zA-Z0-9~%\._-])$', 'project.app.view'),

该表达式应与here描述的所有内容相匹配。

请注意,您的示例应为mydomain.com/http%3A%2F%2Fgoogle.com(斜杠应编码)。

答案 2 :(得分:0)

我认为你可以用:

(r'^(?P<url>[\w\.~_-]+)$', 'project.app.view')