使用http put方法为webapp2做任何好的工作示例?

时间:2012-10-31 13:15:37

标签: python google-app-engine

我想使用HTTP PUT方法,将数据发送到我的谷歌应用引擎应用程序,任何好的例子?我从谷歌找不到任何东西。

以下示例也无效。

import webapp2

class MainHandler(webapp2.RequestHandler):
    def put(self):
        self.response.write('test put')

app = webapp2.WSGIApplication([
    (r'/test/(.*)', MainHandler)
], debug=True)

我收到了这个错误。

TypeError: put() takes exactly 1 argument (2 given)

3 个答案:

答案 0 :(得分:5)

你传递了一个参数,并将其映射为:

(r'/test/(.*)', MainHandler)

(.*)传递了put方法,无论您在/test/之后使用什么来访问此url路径。
像这样更新你的处理程序:

class MainHandler(webapp2.RequestHandler):
    def put(self, myarg):
        self.response.write('test put, myarg is %s' %myarg)

答案 1 :(得分:2)

TypeError: put() takes exactly 1 argument (2 given)

表示当你只指定1(self)时,使用2个参数调用方法'put'。

这应该有效:

class MainHandler(webapp2.RequestHandler):
    def put(self, param):
        self.response.write('test put')

答案 2 :(得分:0)

您可以使用来自请求对象的POST变量

class MainHandler(webapp2.RequestHandler):
    def put(self):
        self.response.write(self.request.POST)

使用curl的示例用法

curl -X PUT -d"x=1&y=2" http://localhost:8080/add