2012-09-07 3 views
1

데이터베이스에서 토네이도에 데이터를 삭제하는 POST 요청을 사용하는 것이 가능하다 나에게 보인다 Tornado에서 POST 요청을 사용하여 데이터를 삭제 하시겠습니까?

def post(self, id): 
    # delete data from db using id 

그리고 클라이언트 측에서

, 우리가 원하는 id와 POST 요청을 보낼 수있는 콘텐츠에 대한 삭제할 수 있습니다. 이것이 유효한 접근 방법입니까?

토네이도의 RequestHandler 클래스에도 delete 메서드가 있다는 것을 알았지 만 어떻게 올바르게 사용해야합니까? 몇 가지 예가 도움이 될 것입니다.

답변

1

내가 오래된 exmplae를보고 있지 않는 한, 토네이도가 삭제 요청을 지원하는 것처럼 보입니다. http://www.tornadoweb.org/documentation/web.html

아무 것도 사용하는 것처럼 내가 delete 메서드를 사용합니다. delete 메소드 (아마도 id을 지정)로 핸들러를 설정 한 다음 해당 레코드가 존재하고 사용자에게 적절한 권한이있는 경우 해당 레코드를 삭제하십시오. 나는 아마도 토네이도하지만, 같은 것을 사용한 적이 :

class WidgetHandler(RequestHandler): 
    def initialize(self, database): 
        self.database = database  

    def delete(self, id): 
        # if user has permission to delete 
     # if record exists 
     # delete it 

app = Application([ 
    (r'/widgets/([0-9]+)', WidgetHandler, dict(database=database)), 
    ]) 

당신은 자바 스크립트를 사용하는 경우/JQuery와/아약스 JQuery와 아약스 삭제 지원 요청을 만들 수있는 전면 : 귀하의 코멘트에 대한

// get your id somehow 
// dynamically build url 
$.ajax({ 
    url: '/widgets/' + theIdYouGotSomehow, 
    type: 'DELETE', 
    success: function(result) { 
     // Do something with the result 
    } 
}); 

을 , 당신은 방금 삭제 방법으로 URL을 칠 수 있습니다. JQuery와 문서에서 /widgets/12

그들은

말을하지만, [삭제 넣어 등] 그들은 모든 브라우저에서 지원되지 않습니다. http://api.jquery.com/jQuery.ajax/

일부에 유래 게시물

는 모든 최신 브라우저가 삭제 방법을 지원하는 것이 좋습니다.

+1

감사합니다. 프론트 엔드 부분에 관한 두 가지 질문 : 1. JQuery'ajax' 함수에서 삭제할'id '를 어떻게 지정해야합니까? 2. 모든 브라우저에서 'DELETE'를 지원합니까? – skyork

+0

훌륭한 답변, 감사합니다! – skyork

관련 문제