如何循环浏览烧瓶/python中的表单?

Posted

技术标签:

【中文标题】如何循环浏览烧瓶/python中的表单?【英文标题】:How can I loop through form’s in flask/python? 【发布时间】:2022-01-23 20:47:17 【问题描述】:

我有一页 html,其中包含几个具有不同名称和值的提交按钮。我在 SQL 的一个数据库中拥有所有按钮的名称。当用户进入页面时,通常他每次只单击一个按钮并提交表单。如何在我的烧瓶/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.:我已经尝试将 row 的值放在 ' 和 " 之间。没有改变任何东西。

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

成功了!!!非常感谢! 很高兴听到这个消息!添加之前的评论时出了什么问题? ;) 只是一个“”错误。哈哈哈才3个月的编程,这样的事很多哈哈哈

以上是关于如何循环浏览烧瓶/python中的表单?的主要内容,如果未能解决你的问题,请参考以下文章

如何在烧瓶中读取多部分/表单数据[重复]

如何使用 mysql 验证烧瓶/python 中的凭据?

如何从 python 烧瓶中的不同目录引用 html 模板

如何将烧瓶表单提交到列表? [复制]

如何从烧瓶中的“ImmutableMultiDict”获取数据

烧瓶中的多用户身份验证