Python 如何在webapp2 delete方法中检索查询字符串?
我在webapp2 delete http方法中检索查询字符串时遇到问题。我不能使用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'
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。