【发布时间】:2021-11-04 20:32:40
【问题描述】:
我对 Flask/Python/HTML 比较陌生,所以请原谅我的语言。
基本上,我正在尝试使用在我的 HTML 页面中输入的 request.form.get 检索“名称”字段。 name 字段是使用 jinja 中的 for 循环生成的。当我点击复选框并单击提交时,我希望 request.form.get 检索该特定复选框数据中的“名称”字段。但是,当我测试数据时,我收到一个 404 错误,表示 request.form.get 值是 NONE 。我不确定我哪里出错了。我怀疑这可能是我插入的 request.form.get 的名称。
在我的烧瓶一侧:
@app.route("/recipedata", methods=["GET","POST"])
def recipedata():
if request.method == 'POST':
food = request.form.get("{{value.id}}")
在 HTML 方面:
{% for value in foodinfo.results %}
<form action="/recipedata" method = "POST">
<input type="checkbox" name="{{value.id}}" value={{value.id}}>
<input type=text placeholder="{{value.id}}">
<input type="submit"> Go to Recipe info
</form>
{% endfor %}
表单标签中带有文本类型的第二行用于测试我的 value.id 是否在 Jinja 中正确打印,确实如此。此外,为澄清起见,foodinfo 作为具有嵌套字典键/值的 .json() 对象传递。我相信,Value.id 允许我在键 'id' 处访问该字典的值。
谢谢!
【问题讨论】:
-
request.form.get("{{value.id}}")而不是{{value.id}}给出value.id的值。基本上你在 html 中看到的name=??。request.form是dict您也可以打印它以查看可用的print(request.form -
我如何从我的 HTML 模板中实际检索值 id? request.form.get("{{value.id}}") 我实际上是在获得价值本身还是我真的看到了 {{value.id}}?