2010-11-29 2 views
2

У меня вопрос о Pylons's request.params, который возвращает объект MultiDict.Пилоны: сохранить заказ в request.params?

Поддерживает ли 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?

ответ

2

Как я помню, даже если вы можете получить Pylons для сохранения заказа, вы не должны полагаться на такое поведение, потому что не все пользовательские агенты (браузеры, боты и т. Д.) Сохраняют порядок, и это не так ваш контроль.

Если это часть спецификации HTTP, это неслучайно соблюдается ... Я сомневаюсь, что это так.

Например, предположим, что пользовательский агент является приложением Python, которое обрабатывает параметры запроса с помощью dicts.

Смежные вопросы