11

初心者なので愚痴はご容赦ください。私は Flask (および拡張子 Jinja2) を使用して単純な Web アプリを作成しています。これは基本的に、映画を Web フォームに入力して、それを SQLite データベースに追加できるアプリです。データベース内のすべてのムービーを非常にうまく反復処理し、ロード時にそれらをページに出力するように Flask を取得しました。

各ムービーの横に「削除」ボタンを追加したいと考えています。ボタンを表示させるのは簡単です。しかし、押されたボタンに関連付けられた正しいムービーを削除するように、ボタンを関数 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'))

助けてくれてありがとう!

4

2 に答える 2

15

値として削除したい要素ID/名前を持つすべてのフォームに非表示の入力を追加するだけです:)

例えば。

<form action="{{ url_for('delete_movie') }}" method=post class=delete-movie>
  <input type=hidden value="{{ movie.name }}"name=movie_to_delete />
  <input type=submit />
</form>
于 2012-05-02T07:04:59.730 に答える