如何为两个参数创建 url 模式,其中第一个参数包含正斜杠作为其内容的一部分:
da/ta1=/data2
最初我有以下模式:
(r'^view/(?P<item_id>\w+=)/(?P<changekey>\w+)/$', 'view'),
但是,由于第一个正斜杠是参数数据的一部分,因此该模式不匹配。
假设您自己构建 url,您可以使用quote_plus http://docs.python.org/library/urllib.html#urllib.quote_plus对内联正斜杠进行编码:
>>> '/'.join([urllib.quote_plus(d) for d in ['da/ta1', 'data2']])
'da%2Fta1/data2'
并解码:
>>> urllib.unquote_plus('da%2Fta1/data2')
'da/ta1/data2'
为了匹配您的数据,您的模式可以更改为下面找到的构造。对于第一个参数,这匹配直到=
特点;第二个参数应该是字母数字。
(r'^view/(?P<item_id>[^=]+)=/(?P<changekey>\w+)/$', 'view')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)