如何从 Pylons 中的 URL 获取多个同名参数?

2024-04-25

因此,不幸的是,我发现自己处于需要修改现有 Pylons 应用程序以处理提供多个同名参数的 URL 的情况。像下面这样的东西...... 域:端口/操作?c=1&v=3&c=4

通常,参数是这样访问的......

from pylons import request
c = request.params.get("c")
#or
c = request.params["c"]

在任何一种情况下,这都会返回“4”作为值,因为忽略除最后一个值之外的所有值似乎是这些情况下的标准行为。但我真正需要的是能够访问两者。我尝试打印 request.params 并得到类似的东西......

NestedMultiDict([(u'c', u'1'),(u'v', u'3'),(u'c', u'4')])

我还没有找到一种方法来索引它,或者访问 c 的第一个值。

我找到了一个类似的问题 https://stackoverflow.com/questions/353379/how-to-get-multiple-parameters-with-same-name-from-a-url-in-php与这个问题有关,但用 PHP 解决了:

这些方面的东西对我来说会很有效,但也许一些 Python 代码适合 Pylons。以前有人处理过类似的事情吗?


从文档中 -http://docs.pylonsproject.org/projects/pyramid/en/1.3-branch/glossary.html#term-multidict http://docs.pylonsproject.org/projects/pyramid/en/1.3-branch/glossary.html#term-multidict :

multidict 一个有序字典,每个键可以有多个值。将方法 getall、getone、mixed、add 和 dict_of_lists 添加到普通字典接口。请参阅Multidict 和pyramid.interfaces.IMultiDict。

所以只需调用:

request.params.getall('c')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Pylons 中的 URL 获取多个同名参数? 的相关文章

随机推荐