Como usar o método HTTP Excluir no Google App Engine?
-
25-09-2019 - |
Pergunta
Eu posso usar esse verbo no Python Windows SDK. Mas não em produção. Por quê? O que estou fazendo errado?
A mensagem de erro inclui (visto apenas via Firebug ou Fiddler)
Solicitação malformada
ou algo assim
Meu código parece:
from google.appengine.ext import db
from google.appengine.ext import webapp
class Handler(webapp.RequestHandler):
def delete(self):
key = self.request.get('key')
item = db.get(key)
item.delete()
self.response.out.write(key)
Solução
Seu manipulador parece ok, você tem certeza de que está enviando a solicitação corretamente? Usando o jQuery, isso funciona para mim (usando a produção de dev_appserver e Google App Engine):
$('#delete-button').click(function() {
$.ajax({
'type': 'DELETE',
'url': '/some/url/that/handles/delete'
})
});
class DeleteHandler(webapp.RequestHandler):
def delete(self):
if users.get_current_user() == allowed_user:
the_data_model.delete()
else:
self.response.out.write('Permission denied')
O envio de um corpo/mensagem de resposta não funcionou para mim (por exemplo, a mensagem "Permissão negada" no meu exemplo não chegará ao cliente). Você verificou que seus itens não são excluídos?
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow