Я делаю небольшую веб-викторину, используя бутылку.Веб-часть работает хорошо, я могу отобразить вопросы и отправить ответы обратно в мой main.py.Когда я перебираю данные POST, я добавляю набор (Qn, ans) к списку данных [].
var, не являясь первым номером вопроса на каждой странице, я создаю этот список следующим образом:
datalist=[]
datum=()
for i in range(no,nend):
noQ = "Q"+str(i)
rep = request.POST.get(noQ)
rep= int(rep)
#print (f"{noQ}: {rep}")
datum=(noQ,rep)
datalist.append(datum)
Это формат для первой страницы:
('Q1', 4) ('Q2', 3) ('Q3', 6)
Список данных второй страницы выглядит следующим образом:
('Q4 ', 4) (' Q5 ', 3) (' Q6 ', 4) и т. Д.
Мне нужно добавить ответы к таблице в базе данных.Поскольку я отображаю 3 вопроса викторины на странице, я хочу обновить список из 3 ответов за раз.Таким образом, имена столбцов увеличиваются на Q1, Q2 ... Qn.Это выглядит так просто, но когда я собрал утверждение:
cur.executemany("UPDATE Q_R SET ?=? where id = 1", datalist)
(идентификатор тоже изменится), я получу:
sqlite3.OperationalError: near "?":синтаксическая ошибка
Я пытался использовать там некоторое форматирование строк, но это просто смеется надо мной.
cur.executemany ("UPDATE Q_R SET% s? =? Где id = 1", список данных)
Я знаю, что это для обновления нескольких столбцов, так что каким-то образом у меня должно быть что-то похожее:
cur.executemany('UPDATE Q_R SET %s=?, %s=?, %s=? where id=id', what goes here ?)