My favorites | 中文(简体) | Sign in

请求数据

请求处理程序实例可使用请求数据的 request 属性访问该请求数据。该数据由应用程序初始化为填充的 WebOb Request 对象。

该 Request 对象可提供 get() 方法,此方法会返回从该查询以及 POST 数据中解析的参数值。该方法使用参数名称作为其第一个参数。例如:

class MyHandler(webapp.RequestHandler):
  def post(self):
    name = self.request.get("name")

默认情况下,如果请求的参数不在该请求中,get() 则会返回空字符串 ('')。如果指定了 default_value 参数,get() 会返回该参数的值,而不是返回参数不存在时的空字符串。

如果参数在一个请求中出现多次,默认情况下,get() 会返回其第一次出现时的值。要以列表(可能为空)的形式获取可能出现多次的参数每次出现时的值,请赋予 get() 参数 allow_multiple=True

# <input name="name" type="text" />
name = self.request.get("name")

# <input name="subscribe" type="checkbox" value="yes" />
subscribe_to_newsletter = self.request.get("subscribe", default_value="no")

# <select name="favorite_foods" multiple="true">...</select>
favorite_foods = self.request.get("favorite_foods", allow_multiple=True)
for food in favorite_foods:
  # ...

对于正文内容不是一组 CGI 参数的请求(例如 HTTP PUT 请求的正文),该 Request 对象会提供属性 bodybody_filebody 是字节字符串形式的正文内容。body_file 提供指向相同数据的类似于文件的接口。

uploaded_file = self.request.body

WebOb 是开源第三方库。有关 API 参考和示例的详细信息,请参阅 WebOb 文档