Пилоны: сохранить порядок в request.params? - PullRequest
2 голосов
/ 29 ноября 2010

У меня есть вопрос о request.params Pylons, который возвращает объект 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 и сохранить их упорядочение в пилонах?

1 Ответ

2 голосов
/ 29 ноября 2010

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

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

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

...