2014-09-19 104 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']) 
相關問題