Python 如何在webapp2 delete方法中检索查询字符串?

Python 如何在webapp2 delete方法中检索查询字符串?,python,google-app-engine,jquery,webapp2,Python,Google App Engine,Jquery,Webapp2,我在webapp2 delete http方法中检索查询字符串时遇到问题。我不能使用self.request.get('my\u query\u string')来获取特定的查询字符串。如何从delete方法中检索它 在客户端中,我有以下javascript代码来发送http请求: function send_http(value1, value2) { $.ajax({ type: 'DELETE', url: '/path/to/my/handler'

我在webapp2 delete http方法中检索查询字符串时遇到问题。我不能使用
self.request.get('my\u query\u string')
来获取特定的查询字符串。如何从delete方法中检索它

在客户端中,我有以下javascript代码来发送http请求:

function send_http(value1, value2) {
    $.ajax({
        type: 'DELETE',
        url: '/path/to/my/handler'
        data: {key1: value1, key2: value2}
    });
}
在GAE webapp2中,我的处理程序如下所示:

class MyHandler(webapp2.RequestHandler):
    def post(self):
        logging.debug('key1: %s' % self.request.get('key1')) # This is OK
        logging.debug('key2: %s' % self.request.get('key2')) # This is OK

   def put(self):
        logging.debug('key1: %s' % self.request.get('key1')) # This is OK
        logging.debug('key2: %s' % self.request.get('key2')) # This is OK

   def delete(self):
        logging.debug('key1: %s' % self.request.get('key1')) # This is NG
        logging.debug('key2: %s' % self.request.get('key2')) # This is NG
        logging.debug('body: %s' % self.request.body) # key1=value1&key2=value2
如果客户端将http方法更改为
POST
PUT
self.request.get()。但是,如果客户端使用
DELETE
方法,
self.request.get()
只返回空


如果我选中self.request.body
,我可以看到所有的查询字符串。有没有什么方便的方法可以从delete方法中检索特定的查询字符串,而不是自己解析body?

我不认为jquery是将数据作为查询参数传入的。如果您尝试以下操作:'/path/to/my/handler?param1=1',然后调用self.request.get('param1'),它将返回1进行删除。感谢Rob,正如您所说,如果我直接将数据附加到url,self.request.get()工作得很好。似乎我误解了文档中的数据字段。上面的测试代码都在开发服务器上运行,部署到生产GAE后,我发现在向生产GAE服务器发送删除请求时,请求正文中不能有任何内容(上面的客户端代码在正文中添加了数据,而不是url),或者将出现“400错误请求”错误。所以,目前我只能手动将数据添加到url。再次感谢你,罗伯。我想这取决于你对删除http规范的理解。但这个问题似乎是允许的:是的,不同的实现对http规范的解释不同。我今天发现这个旧的,错误代码从501变为400。