2010-03-07 13 views
7

Bu fiili Python Windows SDK'de kullanabilirim. Ama üretimde değil. Niye ya? Neyi yanlış yapıyorum?Google App Engine'de HTTP yöntemi DELETE nasıl kullanılır?

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

Bunu üretimde gördüğünüzü söylüyorsunuz, evet? İstek yönetim günlükleri üretim yöneticisi konsolunda ne söylüyor? Kodunuzun işlemediği birkaç olası istisnai durum vardır ve kod çökerse, bununla ilgili bazı bilgiler görürsünüz. Ayrıca, AppEngine'a gönderilmesinin gerçek isteğini görmek çok yararlı olacaktır. –

+0

@Adam Yönetici konsolunda hiçbir şey görmedim, sadece eski hatalar. –

+0

Ardından, isteğin istekleri işleyiciye kadar getirmediği anlaşılıyor, bu yüzden sorunun nerede olduğu değil. Asıl isteğin kendisini sorunuzun içinde yayınlayabilir misiniz? –

cevap

3

:

hata mesajı Kodum benzediğini

gibi

Hatalı istek

falan (sadece kundakçı veya fiddler yoluyla görülür) içerir İşleyiciniz iyi görünüyor, istekleri gönderdiğinizden emin misiniz? t doğru mu?

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

bir yanıt gövde/mesaj (benim için işe yaramadı gönderme örneğin "izin reddedildi" Benim örnekte mesajı olmaz: jQuery kullanarak, bu (hem dev_appserver ve google app motor üretimini kullanarak) benim için çalışıyor müşteriye ulaşmak). Öğelerinizin silinmediğini doğruladınız mı?

+0

belki de düzeltmişlerdir –

+1

@JaderDias - Hayır, bu örnekte gönderilen bir istek gövdesi olmadığından çalışma DELETE isteği. – jmort253

+0

Bu çalışır. Ancak, bir sunucuya, sunucuya bile ulaşmayan bir istek gönderirsiniz. – fiatjaf