2010-03-07 2 views
7

이 동사는 Python Windows SDK에서 사용할 수 있습니다. 그러나 생산 단계에 있지는 않습니다. 왜? 내가 도대체 ​​뭘 잘못하고있는 겁니까?Google App Engine에서 HTTP 메소드 DELETE를 사용하는 방법은 무엇입니까?

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) 
+0

당신은 이것을 프로덕션에서보고 있다고 말합니까? 프로덕션 관리 콘솔에서 요청 로그는 무엇을 말합니까? 코드가 처리하지 않는 몇 가지 예외 상황이 있으며 코드가 충돌하는 경우 일부 정보가 표시됩니다. 또한 AppEngine으로 보내지는 실제 요청을 확인하는 것이 좋습니다. –

+0

@ Adam 나는 관리 콘솔에서 아무것도 보지 못했지만 단지 오래된 오류가 있습니다. –

+0

그런 다음 요청이 요청 처리자에게 모든 것을 제공하지 않는 것으로 나타나므로 문제가있는 곳이 아닙니다. 질문의 본문에 실제 요청 자체를 게시 할 수 있습니까? –

답변

3

:

오류 메시지가 내 코드처럼 보이는

같은

잘못된 요청

또는 무언가 (만 불을 지르고 또는 피들러를 통해 본) 포함 처리기가 정상적으로 보입니다. 요청을 전송할 예정입니까? 올바르게?

$('#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') 

는 응답 본문/메시지 (나를 위해 작동하지 않았다 보내기 예를 들어 "권한 거부"내 예제에서 메시지하지 않습니다 : jQuery를 사용하여,이 (모두 dev_appserver와 구글 앱 엔진 생산을 사용하여) 나를 위해 작동 클라이언트에게). 아이템이 삭제되지 않았 음을 확인 했습니까?

+0

어쩌면 그들은 그것을 고쳤습니다 –

+1

@ JaderDias - 아니,이 예제는 DELETE 요청에서 보낸 요청 본문이 없기 때문에 작동합니다. – jmort253

+0

이것은 작동합니다. 그러나 서버에 도달하지 못한 요청을 본문으로 보냅니다. – fiatjaf