我正在尝试从表单和不同的表中将数据插入表中,但是我收到了这个错误。
TypeError:函数最多需要2个参数(给定3个)
db.execute(“INSERT INTO章节(chapter,book_id)VALUES(?,?)”,[request.form ['chapter']],book_id)
@app.route('/newbook')
def new_book():
return render_template('newbook.html')
@app.route('/addbook', methods=['GET', 'POST'])
def addbook():
db = get_db()
db.execute("INSERT INTO books (title) VALUES (?)",
[request.form['title']])
db.commit()
return redirect(url_for('new_chapter'))
@app.route('/newchapter')
def new_chapter():
return render_template('newchapter.html')
@app.route('/addchapter', methods=['GET', 'POST'])
def addchapter():
db = get_db()
cur = db.execute("SELECT last_insert_rowid()")
book_id = cur.fetchone()
db.execute("INSERT INTO chapters (chapter, book_id) VALUES (?, ?)", [request.form['chapter']], book_id)
db.commit()
return redirect(url_for('new_concepts'))
答案 0 :(得分:2)
错误告诉你错误,当你只能接受2时,你已经给出了以下第3行参数。
?
第一个参数应该是SQL查询,而第二个参数应该是将替换book_id
占位符的值列表。但是,您不小心将db.execute("INSERT INTO chapters (chapter, book_id) VALUES (?, ?)", [request.form['chapter'], book_id])
置于列表之外,导致它作为第三个参数传递。它应该在列表中如下:
{{1}}