首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GET或POST字典中条目的顺序是否会发生变化?姜戈

GET或POST字典中条目的顺序是否会发生变化?姜戈
EN

Stack Overflow用户
提问于 2014-09-16 17:05:24
回答 2查看 532关注 0票数 3

我只是想知道GET或POST字典中的条目顺序是否会发生变化?

如果你有一个3人的名单,你会说:

模板:

代码语言:javascript
运行
复制
 for x in listof3people:
    <input type="hidden" name="x.name">
    <input type="number" name="birthday">

在视图中,当您执行getlist(name)时,信息的顺序永远不会更改正确吗?

因此,如果查询按该顺序提取mark、mindy和sam,get列表将始终显示:

马克和他的生日,明迪和她的生日,山姆和他的生日按顺序排列。之所以我是askiong,是因为我必须根据位置链接信息,所以找到"bar“的位置,然后将数据拉到位于相同位置的嵌套列表中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-16 18:10:07

在幕后,用于GETPOSTGET类和POST类是根据six.moves.urllib.parse.parse_qsl的输出构建的。这是基于标准的urllib.parse_qsl函数,您可以从源代码中看到它确实维护了URL中给出的顺序:

https://github.com/python/cpython/blob/a54346b3a1232cdd503abc4d4e9e526ba65b26b3/Lib/urllib/parse.py

这样的输入应该按照在文档中显示的相同顺序放入URL/编码表单数据:浏览器是否在GET/POST上保留相同名称的输入顺序?

注意,我说的只是,关于同一键的多个值的,使用getlist获取。QueryDict并不比任何其他dict-derived类更能保证dict键的顺序。

因此,这是可能的,但就我个人而言,我会传递一个明确的标识符,而不是依赖它。

票数 1
EN

Stack Overflow用户

发布于 2014-09-16 18:00:31

我想你说的是QueryDict。这是一个定制的Python字典。通常情况下,并不能保证键总是按它们被推入的顺序显示。因此,为了达到您的目的,您可以在表单中使用一些额外的权重值,以便根据这些值对传入的数据进行排序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25874614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档