如何循环遍历 flask/python 中的表单?

How can I loop through form’s in flask/python?

我有一个页面 HTML 有几个具有不同名称和值的提交按钮。我在 SQL 中的一个数据库中拥有所有按钮的名称。当用户进入页面时,他通常每次只点击一个按钮并提交表单。如何在我的 flask/python 程序中循环访问此按钮?

connection = sqlite3.connect('world.db')
cursor = connection.cursor()


sqlite_select_query = """SELECT name FROM countries"""
cursor.execute(sqlite_select_query)
records = cursor.fetchall()
for row in records:
    wish = request.form[row[0]]
    try:
            db.execute("INSERT INTO userinput (user_id, wish, country_name) VALUES (?, ?, ?)", user_id, wish, row[0])
                    
    except ValueError:
            db.execute("UPDATE userinput SET wish = ? WHERE user_id =? AND country_name=?", wish, user_id, row[0] )
            
    except:
        pass

我有一个错误 400 Bad request。

Ps.: 我已经尝试将行的值放在 ' 和 " 之间。没有改变任何东西。

如果我将 request.form 放入 try 会话中,它就会通过。 我在几个“打印”之前放了几个,看看错误在哪里,并在申请表中看到。

如果我将名称直接放在请求表单中并放在循环之外,例如 ''' request.form[“Brazil”]''' 我可以毫无问题地插入数据库。 谢谢

我很确定 request.form 不包含所有国家,只是单击了一个相关按钮。您可以查看服务器日志,您可能会在 request.form 中看到有关丢失密钥的信息。所以你想要的是找到那个特定的:

wish = request.form.get(row[0])
if wish is None:
    continue