在我看来,使用POST
请求从数据库中删除Tornado中的数据是可行的:
def post(self, id):
# delete data from db using id
在客户端,我们可以发送包含要删除内容的所需id
的帖子请求。这是一种有效的方法吗?
我注意到Tornado中的RequestHandler类中还有一个delete
方法,但我应该如何正确使用它?一些例子会有所帮助。
答案 0 :(得分:2)
除非我正在查看过时的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)),
])
如果你在前面使用javascript / jquery / ajax来发出请求jquery ajax支持delete:
// get your id somehow
// dynamically build url
$.ajax({
url: '/widgets/' + theIdYouGotSomehow,
type: 'DELETE',
success: function(result) {
// Do something with the result
}
});
对于您的评论,您只需使用delete方法点击网址即可。 /widgets/12
从jquery文档中他们说
但所有浏览器都不支持[删除,放置等]。
http://api.jquery.com/jQuery.ajax/
一些stackoverflow帖子建议所有现代浏览器都支持delete方法。