【问题标题】:Pass Flask values to HTML将 Flask 值传递给 HTML
【发布时间】:2020-11-21 17:15:30
【问题描述】:

我正在尝试通过 Flask 将变量传递到我的 HTML 页面

@app.route("/<youtubeUrl>/", methods=["POST","GET"])
def results(youtubeUrl):
    if request.method == "POST":
        return redirect(url_for("results", youtubeUrl=request.form["url"], link=str(youtubeUrl)))
    else:
        return render_template("result.html")

但是当我把它放在我的 HTML 上时,它没有被打印出来:

<p>{{ link }}</p>

如您所见,我也尝试对字符串进行强制转换,但仍未打印出来。

【问题讨论】:

  • 您在“结果”中传递了哪些参数?因为您正在重定向到它。当您在“结果”上渲染模板时,请确保您在其上传递链接。
  • 我已经用参数重写了问题

标签: python html flask frontend


【解决方案1】:

您的 link 变量永远不会传递给模板。您的重定向发送一个 GET 请求。您需要同时发送link

else:
    template_context = {
        link : request.args.get('link'),
        youtubeUrl : youtubeUrl
    }
    return render_template("result.html", **template_context)

注意:传递给 url_for() 的额外数量的关键字参数 函数将作为查询字符串附加到 URL。

【讨论】:

  • 谢谢盖凡!!就是这样,我没有将变量传递给 GET 请求:)
【解决方案2】:

尝试使用html文件的名称

return redirect(url_for("results.html", youtubeUrl=request.form["url"], link=str(youtubeUrl)))

【讨论】:

  • 谢谢 ReetS,但变量仍未打印在 HTML 上
猜你喜欢
  • 1970-01-01
  • 2017-12-29
  • 2011-03-13
  • 1970-01-01
  • 1970-01-01
  • 2022-12-05
相关资源
最近更新 更多