因此,不幸的是,我发现自己处于需要修改现有 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(使用前将#替换为@)