首页 > 解决方案 > werkzeug.routing.BuildError:无法为端点“Bookdetails”构建 url。您是否忘记指定值 ['book_id']?

问题描述

我一直在尝试调试这个问题,并且我看到了一些具有相同问题的类似线程,但是即使在交叉检查了所有选项之后,我似乎仍然有问题。

我正在使用以下内容:

应用程序.py

@app.route("/Booksearch/<int:book_id>", methods=["GET", "POST"])
def Bookdetails(book_id):

if request.method == "GET":
    if session["Username"] is None:
        return render_template("error.html", message="Some error message.")
    else:
        return render_template("some.html")

在我的 HTML 中

<a href="{{ url_for('Bookdetails', books_id=result.id) }}">

当我点击链接时,我可以book_id在浏览器上看到正确的 ( /Booksearch/123 where book_id=123)。我不确定我做错了什么仍然会出现以下错误。

标签: pythonhtmlformsflaskpython-requests

解决方案


books_id在创建 URL 时使用,但端点希望参数被命名book_id(不带s):

def Bookdetails(book_id): <- without s

在您的模板中,您有:

<a href="{{ url_for('Bookdetails', books_id=result.id) }}">  <- with s in books

请改用正确的形式:

<a href="{{ url_for('Bookdetails', book_id=result.id) }}">

推荐阅读