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

Python 如何将表单数据传递到多个sqlite3行,python,sqlite,flask,Python,Sqlite,Flask,我试图将Flask中的表单数据传递到sqlite数据库的多行中 表单要求用户输入多个配料和所需的配料量,我正试图将它们传递到单独的行中,使用配方名称将这些行组合在一起 if request.method == "POST": rname = request.form.get('rname') customer_id = request.form.get('customer_id') ingredient_id = request.form.getlist('produc

我试图将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=[]
对于ind,枚举中的成分(成分id):
数据=(名称、客户id、成分、成分金额[ind])
查询参数追加(数据)
当前执行代码(sql、查询参数)

您有任何类型的数据验证吗?可能传递的数据与数据库中指定的数据类型不匹配可能存在重复。看起来您需要创建一个复合列表,其中每行的值数保持一致。换句话说,您需要复制“单个值”并交错列表,以便每行形成一个列表。现在,您正试图提交一些单独的值和单独的列表,但这不起作用。还可以在web文档中查找
executemany