Flask和从HTML检索数据

2024-04-16 08:13:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Flask/Python/HTML比较陌生,请原谅我的语言

基本上,我正在尝试用request.form.get检索HTML页面中输入的“name”字段。名称字段是在jinja中使用for循环生成的。当我点击复选框并单击submit时,我希望request.form.get能够检索特定复选框数据中的“name”字段。但是,当我测试数据时,得到一个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 %}

我的表单标签中的第二行带有type text,用于测试我的value.id是否在Jinja中正确打印,事实上确实如此。此外,为了澄清,foodinfo作为一个带有嵌套字典键/值的.json()对象传递。我相信Value.id允许我在键“id”处访问dict的值

谢谢大家!


1条回答
网友
1楼 · 发布于 2024-04-16 08:13:10

我认为根据python语法,recipedata()的函数定义是无效的。您需要在python中缩进代码以保留范围信息。你可以看到更多的here

尝试以下函数定义

def recipedata():
  if request.method == 'POST':
    food = request.form.get("{{value.id}}")

我不确定HTML部分是否引起了任何问题

相关问题 更多 >