Google App Engine - 请求类query_string

问题描述:

在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 

你并不需要复杂化。您可以检索所有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

如果要遍历您请求的所有参数,你应该做这样的事情:

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()}