【发布时间】:2020-02-12 15:09:37
【问题描述】:
我正在尝试将 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: 参数的类型不受支持
在前端,数据传递正常,我可以在网络控制台中看到它。
这段代码哪里出错了?
谢谢。
【问题讨论】:
-
您有任何类型的数据验证吗?也许正在传递的数据与数据库中指定的数据类型不匹配
-
How can I use executemany to insert into MySQL a list of dictionaries in Python 的可能重复项。看起来您需要创建一个每行具有一致数量值的复合列表。换句话说,您需要复制“单个值”并交错列表,以便它们每行形成一个列表。现在您正在尝试提交一些单个值以及单独的列表,但这不起作用。同时查找
executemany的网络文档。