Flask SQLAlchemy 中的表单删除方法不起作用

我试图让页面显示人员详细信息,并在底部有一个按钮,以从数据库中删除人员并定向到主页。问题是由于某种原因删除方法不起作用。


@app.route('/venues/<int:venue_id>')

def show_venue(venue_id):

  data = Venue.query.get(venue_id)

  return render_template('pages/show_venue.html', venue=data)



@app.route('/venues/<int:venue_id>', methods=['DELETE'])

def delete_venue(venue_id):


    try:

        Venue.query.filter_by(id=venue_id).delete()

        db.session.commit()


    except Exception as e:

        print(e)

        error = True

        db.session.rollback()

    finally:

        db.session.close()

        if not error:

            flash('Venue was successfully deleted!')

            return render_template('pages/home.html')

        else:

            flash('An error occurred. Venue ' +

                  request.form['name'] + ' could not be deleted.')

        return None

HTML 内:


...

    <form class="form" method="DELETE" action="/venues/{{venue.id}}">

        <input type="submit" value="Delete Venue">

    </form>

...

控制台没有显示任何错误,但它实际上什么也没做..只是返回到同一页面..感谢您的帮助


慕斯709654
浏览 94回答 1
1回答

米琪卡哇伊

我相信对于该 delete函数,您需要将要删除的内容作为函数的参数传递。item_to_be_deleted =  Venue.query.filter_by(id=venue_id)db.session.delete(item_to_be_deleted)例如,如果您通过 Postman 发送查询,而不是使用 html 表单,您可以删除该条目吗?Web 浏览器无法发送 PUT 和 DELETE 方法。他们只发送 GET 和 POST。所以可能跟这个有关系!!如果您更改浏览器传递的方法,它可能会成功!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python