如何使用Flask框架从数据库中删除项目?

Hay*_*aas 5 html python database flask

我正在使用Flask框架,正在尝试从数据库中删除条目。下面的代码给出此错误:“该方法不允许用于所请求的URL。”

在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>
Run Code Online (Sandbox Code Playgroud)

在py中:

@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'))
Run Code Online (Sandbox Code Playgroud)

然后如何从html到py获取正确的postID?

Wil*_*rto 4

如果您要使用 POST 请求,则该变量将在 Flask 的request.form. 如果您继续使用 DELETE,我认为您需要更改您的 uri。例如:

@app.route('/delete/<int:postID>', methods=['DELETE'])
Run Code Online (Sandbox Code Playgroud)