Pylons:在request.params中保留订购?

时间:2010-11-29 17:07:52

标签: pylons

我对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中的排序?

1 个答案:

答案 0 :(得分:2)

我记得,即使你可以让Pylons保留订单,你也不应该依赖这种行为,因为并非所有的用户代理(浏览器,机器人等)都保留了订购,而且不在控制。

如果它是HTTP规范的一部分,则不能可靠地遵循......我怀疑它是什么。

例如,假设用户代理是一个使用dicts处理查询参数的Python应用程序。