我试图将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] 删除。
我来说两句