2012-05-02 3 views
8

私は初心者ですので、あらかじめ愚かさを許してください。私は基本的にあなたがSQLiteデータベースにそれを追加するWebフォームにムービーを入力できるように、単純なWebアプリケーションを作成するためにFlaskを(そして拡張Jinja2)使用しています。私は、データベース内のすべてのムービーを非常にうまく反復処理し、読み込み時にページに出力するためにFlaskを取得しました。HTMLボタンを使ってSQLiteデータベースから正しいリスト項目を削除するにはどうすればよいですか?

各動画の横に[削除]ボタンを追加します。表示されるボタンを取得するのは簡単です。しかし、ボタンを押されたボタンに関連付けられた正しいムービーが削除されるように、ボタンを関数delete_movie()に戻す方法をわかりません。

各ムービーの横にボタンが表示されるため、フォーム要素には動的に名前を付ける必要があります。しかし、動的に名前が付けられている場合、正しい値を関数に戻すにはどうすればよいですか?これはこれまで私が持っていたものです:

#movies.html 
<div class=page> 
    <h1>Movie List</h1> 
    <ul class=movies> 
    {% for movie in movies %} 
     <li><h1>{{ movie.title }}</h1> 
     <form action="{{ url_for('delete_movie') }}" method=post class=delete-movie><input type=submit value=Delete name=movie_to_delete"></form> 
    {% endfor %} 
    </ul> 
</div> 

#app.py 
@app.route('/delete', methods=['POST']) 
def delete_movie(): 
    g.db.execute('delete from movies where movie = ?', [request.form['movie_to_delete']]) 
    g.db.commit() 
    return redirect(url_for('list_movies')) 

ありがとうございました!

答えて

10

ちょうどあなたが値として削除したい要素のid /名前を持つすべてのフォーム:)

などに隠し入力を追加します。

<form action="{{ url_for('delete_movie') }}" method=post class=delete-movie> 
<input type=hidden value="{{ movie.name }}"name=movie_to_delete"></input> 
<input type=submit></input> 
</form> 
+0

ブリリアント。ありがとうTommaso! – Barrett

+0

@Barrettは役に立ちました。:)あなたの問題を解決した場合、答えを正しいものとしてマークすることを忘れないでください。 –

+0

完了。私はスタックオーバーフローでも、コーディング時にも初心者です。) – Barrett

関連する問題