如何使用Flask框架从数据库中删除项目?
问题描述:
我正在使用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?
答
如果您打算使用POST请求,变量将在flask的request.form
下可用。如果你留在DELETE中,我认为你需要改变你的uri。例如:
@app.route('/delete/<int:postID>', methods=['DELETE'])
您的路由装饰器中引用的方法应该是POST而不是DELETE。 – b10n 2014-09-19 01:40:42
@ b10n谢谢,以及如何获得postID的功能?我怎么做? – 2014-09-19 01:58:38
这里有几个很好的答案:[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