18910140161

Flask和从HTML检索数据

顺晟科技

2021-09-08 12:24:21

154

我对flask/python/html比较陌生,所以请原谅我的语言。

基本上,我试图用在HTML页面中输入的request.form.get检索“name”字段。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 %}

使用text类型的my form标记中的第2行用于测试my value.id是否在Jinja中正确打印,实际上是正确的。另外,为了澄清起见,foodinfo是作为一个.json()对象传递的,对象中有嵌套的字典键/值。我相信,value.id允许我在键'id'处访问该dict的值。

谢谢!


顺晟科技:

我认为您对recipedata()的函数定义不符合python语法。您需要在python中缩进代码以保留作用域信息。您可以在此处查看更多信息。

尝试使用以下函数定义。

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

我不确定HTML部分是否会引起任何麻烦。

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航