python - 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
)。我不确定我做错了什么仍然会出现以下错误。
解决方案
您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) }}">
推荐阅读
- javascript - Vue js/Javascript 图像压缩返回黑色图像
- python - 输入必须有 3 个维度,在创建 LSTM 分类器时出现 2 个错误
- wordpress - 仅在 WooCommerce 中禁用订阅产品的优惠券而不完全禁用优惠券
- docker - 操作系统更新后 Docker 守护进程未启动
- vue.js - 如何添加询问我们是否要在 vuejs2 中删除某些内容的对话框/模式
- google-bigquery - Bigquery 的 UDF:如何使用 javascript UDF 加载 jQuery 库?
- mariadb - 基于列的累积 SUM 限制获取行的高性能方法
- javascript - 如何在不使用 Promise 的情况下编写函数来进行并行计算?
- ngrx - ngrx 选择器不返回数字,而是返回整个状态对象
- python - AWS CDK Python - 在其他项目堆栈文件中重用 config.py 文件中的代码块