我对Pylons的request.params
有疑问,它会返回一个MultiDict对象。
request.params是否以可靠的方式保留了GET参数的顺序?
例如,如果我要访问http://localhost:5000/hello/index?a=1&a=2并调用request.params,我可以保证返回的MultiDict对象按以下顺序排列吗?
>>> request.params
MultiDict([('a', '1'), ('a', '2')])
我猜不是,因为Python似乎有一个单独的OrderedMultiDict对象用于,有序的MultiDicts。
如果没有,有没有其他方法可以获得GET参数并保留它们在Pylons中的排序?
答案 0 :(得分:2)
我记得,即使你可以让Pylons保留订单,你也不应该依赖这种行为,因为并非所有的用户代理(浏览器,机器人等)都保留了订购,而且不在控制。
如果它是HTTP规范的一部分,则不能可靠地遵循......我怀疑它是什么。
例如,假设用户代理是一个使用dicts处理查询参数的Python应用程序。