2009-09-07 128 views
6

在Python和GAE中,我想問一下如何獲取url中查詢字符串的參數。 據我所知,query_string部分返回「?」後的所有部分在網址中。所以我必須做的是將查詢字符串拆分爲「&」,並使用這些變量。 是否有任何其他方便管理查詢字符串的方法? 你通常如何做到這一點?Google App Engine - 請求類query_string

str_query = self.request.query_string 
m = str_query.split('&') 
a = m[0] 
b = m[1] 
c = m[2] 

這樣做的方式,在情況下,QUERY_STRING沒有任何價值,它拋出一個錯誤:

IndexError: list index out of range 

回答

18

你並不需要複雜化。您可以檢索所有GET參數有:

self.request.get('var_name') 

或者,如果你想找回他們都在一個列表中,您可以使用:

self.request.get_all() 

你可以找到Request類here更多信息。

+0

謝謝羅傑里奧,它的作品! – 2009-09-07 22:34:02

+4

self.request.get_all()實際上沒有參數沒有工作;它不返回所有的查詢變量,它只是返回一個特定變量的所有值。對於完整的列表,你需要使用self.request.arguments()。 – apenwarr 2012-03-08 08:45:16

+1

正如@apenwarr所說,這不再是一個有效的答案:'get_all'需要一個參數名來獲取所有的值 – marianosimone 2015-03-08 15:06:10

0

如果要遍歷您請求的所有參數,你應該做這樣的事情:

for argument in self.request.arguments(): 
    values = self.request.get_all(argument) 
    # do something with values (which is a list) 

或者,你可以建立自己的包含dict所有的數據:

params = {arg: self.request.get_all(arg) for arg in self.request.arguments()}