如何将表单数据传递到多个sqlite3行

布拉德

我试图将Flask中的表单数据传递到sqlite数据库的多行中。

该表格要求用户输入所需的多种配料和配料量,我正在尝试使用配方名称将它们分成单独的行,并将其传递到单独的行中。

if request.method == "POST":

    rname = request.form.get('rname')
    customer_id = request.form.get('customer_id')
    ingredient_id = request.form.getlist('product_code')
    ingredient_amount = request.form.getlist('ingredient_amount')

    con = sqlite.connect('database.db')
    cur = con.cursor()
    sql = """INSERT INTO recipes (rname, customer_id, ingredient_id, ingredient_amount) VALUES (?, ?, ?, ?)"""
    cur.executemany(sql, (rname, customer_id, ingredient_id, ingredient_amount,))
    cur.commit()

错误

ValueError:参数类型不受支持

正如我在网络控制台中看到的那样,在前端,数据正在正常传递。

这段代码哪里出问题了?

谢谢。

您应该传递给Cursor.executemany一系列参数(例如,元组列表,请参阅文档)。在您的情况下,给定的错误意味着rname不可迭代(我假设它是一个字符串)。

您需要executemany像这样正确打包数据

query_args = []

for ind, ingredient in enumerate(ingredient_id):
    data = (rname, customer_id, ingredient, ingredient_amount[ind])
    query_args.append(data)

cur.executemany(sql, query_args)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章