2024-04-24 08:21:37 发布
网友
我正在django中创建一个api,其中有一个参数(state_name),state_name的值可以在其值中包含“&;”,这会导致某些问题?在
例如,如果我的url是
http://localhost:8080/api?state_name=jammu&kashmir&value=2
所以在上面的例子中,当我试图从url获取值时,它只接受state_name的值'jammu',并将克什米尔视为一个参数?在
在django我能做些什么来解决这个问题?在
I am creating an api in django in which I have a parameter (state_name) and the value of state_name can include '&' in its value which is causing certain problems?
'&'
这是毫无意义的。在查询字符串中,两个参数用与号(&)分隔。例如:
&
foo=bar&qux=3
如果您希望内容包含与号,则需要对其进行编码,如:
这里%26是与号的编码,然后查询字符串有两个参数:state_name和{}。然后解析如下:
%26
state_name
>>> from django.http import QueryDict >>> QueryDict('state_name=jammu%26kashmir&value=2') <QueryDict: {'state_name': ['jammu&kashmir'], 'value': ['2']}>
您可以使用QueryDict来构造这样的查询,例如:
QueryDict
>>> qd = QueryDict(mutable=True) >>> qd['state_name'] = 'jammu&kashmir' >>> qd['value'] = '2' >>> qd.urlencode() 'state_name=jammu%26kashmir&value=2'
您需要转义&,以便在http查询参数中使用。在
http://localhost:8080/api?state_name=jammu%26kashmir&value=2
如果您是从另一个Python脚本发布此消息,那么可以使用urllib.parse.quote函数来为您执行此操作:
urllib.parse.quote
这是毫无意义的。在查询字符串中,两个参数用与号(
&
)分隔。例如:如果您希望内容包含与号,则需要对其进行编码,如:
^{pr2}$这里}。然后解析如下:
%26
是与号的编码,然后查询字符串有两个参数:state_name
和{您可以使用
QueryDict
来构造这样的查询,例如:您需要转义
&
,以便在http查询参数中使用。在如果您是从另一个Python脚本发布此消息,那么可以使用
^{pr2}$urllib.parse.quote
函数来为您执行此操作:相关问题 更多 >
编程相关推荐