键入错误将数据插入烧瓶中的sqlite

时间:2017-09-02 21:39:27

标签: python flask sqlite

我正在尝试从表单和不同的表中将数据插入表中,但是我收到了这个错误。

  

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'))

1 个答案:

答案 0 :(得分:2)

错误告诉你错误,当你只能接受2时,你已经给出了以下第3行参数。

?

第一个参数应该是SQL查询,而第二个参数应该是将替换book_id占位符的值列表。但是,您不小心将db.execute("INSERT INTO chapters (chapter, book_id) VALUES (?, ?)", [request.form['chapter'], book_id]) 置于列表之外,导致它作为第三个参数传递。它应该在列表中如下:

{{1}}