Python '的标准是什么;应用程序/x-www-form-urlencoded';还有一个空值?
不久前,我注意到,当将映射Python '的标准是什么;应用程序/x-www-form-urlencoded';还有一个空值?,python,html,http,standards,urlencode,Python,Html,Http,Standards,Urlencode,不久前,我注意到,当将映射name:value编码为'application/x-www-form-urlencoded时,它呈现类似的内容(这里我使用Python): 但解析(至少在Python中)只是剥离具有空值的对: >>> from urlparse import parse_qs >>> parse_qs('blabla=hihi&hello=') {'blabla': ['hihi']} 所以。。。这是标准行为吗?在哪里可以找到有关如何解
name:value
编码为'application/x-www-form-urlencoded
时,它呈现类似的内容(这里我使用Python):
但解析(至少在Python中)只是剥离具有空值的对:
>>> from urlparse import parse_qs
>>> parse_qs('blabla=hihi&hello=')
{'blabla': ['hihi']}
所以。。。这是标准行为吗?在哪里可以找到有关如何解析
www-form-urlencoded
的参考?我在谷歌上搜索了一段时间,找到了用于URI的RFC、用于表单的W3c文档,等等,但没有找到关于如何处理空值的内容。有人能给我一个指向这个的指针吗?据我所知,这个没有“标准”。唯一被描述的事情(在html规范中,正如您已经发现的那样)是浏览器应该如何对表单数据进行编码。对于空值,您想做什么(或不做什么)取决于您自己
请注意,urlparse.parseqs()
有一个可选参数,keep_blank_values
允许您控制如何处理这些值:
>>> from urlparse import parse_qs
>>> parse_qs('blabla=hihi&hello=', keep_blank_values=True)
{'blabla': ['hihi'], 'hello': ['']}
谢谢你的回答!!我不知道这个“保持空白值”的夸格。你知道吗?也许吧,Django中有这样的设置吗?Django不是已经对
请求这样做了吗。获取和请求。发布?@Steven:嗯。。。我不这么认为,但我可能错了。。。虽然我很确定它不会使用django,所以我也不确定,但这些问题似乎表明它会使用:而且@Steven:好的。。。我的错误你是对的,我还与Django进行了检查,事实上,参数没有剥离。然而,让我开始的是,使用“选择多个”,如果没有选择任何内容,则不会发送参数。然而,这是客户机的问题,而不是服务器的问题。
>>> from urlparse import parse_qs
>>> parse_qs('blabla=hihi&hello=', keep_blank_values=True)
{'blabla': ['hihi'], 'hello': ['']}