2013-07-06 46 views
-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

+1

你在哪裏看到這個?有沒有任何上下文? – Greg

+0

@Greg IT位於以下網址:https://code.google.com/p/google-app-engine-samples/source/browse/trunk/search/python/search_demo.py?r=157 –

回答

2

有一些差異。最大的是如果密鑰query在uri中出現多次,第一個版本將返回第一個實例,而第二個版本將返回最後一個實例。

而且,在第二版中,如果該鍵不存在,你會得到None代替''

潛在V1的作者只是不信任的WebOb正確地解析他的查詢字符串。