带正斜杠的Django url模式参数

2024-05-15 00:20:28 发布

您现在位置:Python中文网/ 问答频道 /正文

如果第一个参数包含正斜杠作为其内容的一部分,如何为两个参数创建url模式:

da/ta1=/data2

最初我有以下模式:

^{pr2}$

但是,此模式不匹配,因为第一个正斜杠是参数数据的一部分。在


Tags: 数据url内容参数模式da斜杠ta1
2条回答

假设您自己构造url,可以使用^{}对内联正斜杠进行编码:

>>> '/'.join([urllib.quote_plus(d) for d in ['da/ta1', 'data2']])
'da%2Fta1/data2'

解码:

^{pr2}$

为了匹配数据,可以将模式更改为下面的构造。对于第一个参数,这将匹配=字符的所有内容;第二个参数应该是字母数字。在

(r'^view/(?P<item_id>[^=]+)=/(?P<changekey>\w+)/$', 'view')

Django-Admin在参数中也有斜杠的问题。为了解决这个问题,Django使用它自己的quote函数:

from django.contrib.admin.utils import quote
quote(param1)

在视图本身:

^{pr2}$

相关问题 更多 >

    热门问题