2014-09-19 102 views
3

我正在使用Flask框架,并试图从数据库中删除一个条目。下面的代码给出了这个错误:“该方法不允许用于请求的URL。”如何使用Flask框架从数据库中删除项目?

在HTML:

<form action="{{ url_for('delete_entry', id=entry.id) }}" method="POST"> 
    <input type="hidden" name="_method" value="DELETE" /> 
    <input type="submit" value="Delete entry" /> 
</form> 

在潘岳:

@app.route('/delete', methods=['DELETE']) 
def delete_entry(postID): 
    if not session.get('logged_in'): 
     abort(401) 
    g.db.execute('delete from entries WHERE id = ?', [postID]) 
    flash('Entry was deleted') 
    return redirect(url_for('show_entries')) 

我怎么那么您可以通过HTML的PY正确的帖子ID?

+0

您的路由装饰器中引用的方法应该是POST而不是DELETE。 – b10n 2014-09-19 01:40:42

+0

@ b10n谢谢,以及如何获得postID的功能?我怎么做? – 2014-09-19 01:58:38

+0

这里有几个很好的答案:[http://stackoverflow.com/questions/25947251/deleting-rows-from-database-with-python-flask/](http://stackoverflow.com/questions/25947251/deleting-rows - 从数据库与 - 蟒烧瓶/) – fundatillus 2016-05-15 18:52:52

回答

3

如果您打算使用POST请求,变量将在flask的request.form下可用。如果你留在DELETE中,我认为你需要改变你的uri。例如:

@app.route('/delete/<int:postID>', methods=['DELETE']) 
相关问题