-1

为什么这样做

uri = urlparse(self.request.uri)
if uri.query:
    query = parse_qs(uri.query)
    try:
        query = query['query'][0]
    except KeyError, err:
        query = ''

而不仅仅是这个

query = self.request.get('query')

? 两个代码块之间有什么区别?

来源。https://code.google.com/p/google-app-engine-samples/source/browse/trunk/search/python/search_demo.py?r=157

4

1 回答 1

2

有一些不同之处。最大的情况是,如果键query在 uri 中出现多次,第一个版本将返回第一个实例,而第二个版本将返回最后一个实例。

此外,在第二个版本中,如果密钥不存在,您将得到None而不是''

v1 的作者可能只是不相信 webob 能够正确解析他的查询字符串。

于 2013-07-06T16:59:19.637 回答