2017-09-01 8 views
2

このコードを改善する方法がわかりません。異なるフィールドを持つ複数のデータを異なる値で挿入しようとしています。誰かが自分のコードを改善できますか?Python、Flask:HTMLフォームの複数のフィールドを持つExecutemany

<form action="/submits/ method="POST"> 

    <input type="text" name="book" value="Divergent"> 
    <input type="text" name="author" value="Veronica Roth"> 

    <input type="text" name="book" value="Allegiant"> 
    <input type="text" name="author" value="Veronica Roth"> 

    <input type="text" name="book" value="Inferno"> 
    <input type="text" name="author" value="Dan Brown"> 

    <input type="submit" value="Submit"> 

</form> 

@app.route('/submits/', methods = ['POST']) 
def books(): 
    if method == "POST": 
     BOOK = request.form['book'] 
     AUTHOR = request.form['author'] 
     stmt = "INSERT INTO shelf (book_column, author_column) VALUES (%s, %s)" 
     c.executemany(stmt, (BOOK, AUTHOR)) 
     conn.commit() 
+1

まず 'を使用すると、1つの以上の単一引用符を必要とした後、ここにタイプミス' BOOK =のRequest.Form [ 'ブック]を削除本。 – 0decimal0

+0

0decimal0私のコードが本当にうまくいくかどうかは分かりませんね。私はPythonとFlaskの新機能ですが、この問題を考慮してください。 – Jom

+0

これを実行する際にエラーが発生していますか? –

答えて

1

あなたはgetlist使用しようとすることができ:すべての

if method == "POST": 
    stmt = "INSERT INTO shelf (book_column, author_column) VALUES (%s, %s)" 
    books = request.form.getlist('book') 
    authors = request.form.getlist('author') 
    for i, book in enumerate(books): 
     c.executemany(stmt, (book, authors[i])) 
     c.commit() 
+0

ベアブラウンありがとうございます。 – Jom

関連する問題