【问题标题】:Google App Engine - Request class query_stringGoogle App Engine - 请求类 query_string
【发布时间】:2015-02-27 23:10:26
【问题描述】:

在Python和GAE中,我想问一下如何在url中获取查询字符串的参数。 据我所知,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

【问题讨论】:

    标签: python google-app-engine


    【解决方案1】:

    您无需复杂化。您可以使用以下命令检索所有 GET 参数:

    self.request.get('var_name')
    

    或者,如果您想在一个列表中检索它们,您可以使用:

    self.request.get_all()
    

    您可以在 Request 类here 上找到更多信息。

    【讨论】:

    • self.request.get_all() 在没有参数的情况下实际上不起作用;它不返回所有查询变量,它只返回特定变量的所有值。对于完整列表,您需要使用 self.request.arguments()。
    • 正如@apenwarr 所说,这不再是一个有效的答案:get_all 需要一个参数名称来获取所有值
    【解决方案2】:

    如果你想遍历请求的所有参数,你应该这样做:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-12
      • 1970-01-01
      • 1970-01-01
      • 2012-01-09
      • 2022-01-25
      • 2011-04-18
      • 1970-01-01
      • 2011-07-02
      相关资源
      最近更新 更多