(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'),
答案 0 :(得分:2)
将%
和.
添加到字符类:
[a-zA-Z0-9_%.-]
注意:您不需要在字符类中转义特殊字符,因为特殊字符在字符集中失去意义。 -
如果不用于指定范围,则应使用反斜杠进行转义或放在开头(对于python 2.4.x,2.5.x,2.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')