Flask post 删除,URL 限制

Flask post delete, URL restrictions

示例代码:

@app.route('/delete-update/<int:post_id>')
@login_required
def delete_update(post_id):
    try:
        p = Post.query.filter(Post.id == post_id).delete()
        db.session.commit()
        flash('Post successfully deleted')
    except:
        db.session.rollback()
    return redirect(url_for('index'))

我可以通过单击按钮使用此路由删除 post,但是如何通过请求 URL

来防止删除 post

localhost:5000/delete-update/1

您应该在路由定义后使用 methods 属性。

@app.route('/delete-update', methods=['POST'])
    if request.method == 'POST':
        #do your stuff

您还可以使用任何默认的 http 方法,例如 PUT, DELETE, PATCH

请注意,随着该更改,如果您使用方法 GET 向:

发出请求
http://localhost:5000/delete-update/1

您将收到 405 回复消息 method not allowed。 那是因为我们的路由不再处理 GET

同时,您应该更改按钮句柄以使用方法 POST 向该路由发送请求。