Django url 模式 - 带正斜杠的参数
如何为两个参数创建 url 模式,其中第一个参数包含正斜杠作为其内容的一部分:
da/ta1=/data2
最初我有以下模式:
(r'^view/(?P<item_id>\w+=)/(?P<changekey>\w+)/$', 'view'),
但是,由于第一个正斜杠是参数数据的一部分,因此该模式不匹配。
How can I create a url pattern for two parameters where the first parameter contains a forward slash as part of its contents:
da/ta1=/data2
Intially I had the following pattern:
(r'^view/(?P<item_id>\w+=)/(?P<changekey>\w+)/
However this pattern does not match because of the first forward slash which is part of the parameter data.
, 'view'),
However this pattern does not match because of the first forward slash which is part of the parameter data.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
假设您自己构造网址,您可以使用
quote_plus
< /a> 对内联正斜杠进行编码:并进行解码:
然后要匹配您的数据,您的模式可以更改为下面找到的构造。对于第一个参数,这会匹配
=
字符之前的所有内容;第二个参数应该是字母数字。Assuming you construct the url yourself, you could use
quote_plus
to encode the inline forward slash:And to decode:
To then match your data, your pattern could be changed to the construct found below. For the first parameter, this matches everything up to the
=
character; the second parameter is expected to be alphanumerical.Django Admin 确实对参数中的斜杠有同样的问题。为了解决这个问题,Django 使用自己的引用函数:
在视图本身中:
Django Admin does have the same problem with slashes in parameters. To fix this, Django uses its own quote function:
In the view itself: