2012-05-02 6 views
8

Sono un principiante, quindi perdona in anticipo ogni stupidità. Sto usando Flask (e per estensione Jinja2) per creare una semplice app web, che fondamentalmente ti permette di digitare un film in un modulo web, che lo aggiunge a un database SQLite. Ho fatto in modo che Flask iterasse molto bene tutti i film nel database e li stampi sulla pagina dopo averli caricati.Come faccio a ottenere il mio pulsante HTML per eliminare l'elemento dell'elenco corretto da un database SQLite?

Desidero includere un pulsante "Elimina" accanto a ciascun film. Ottenere il pulsante per apparire è semplice. Ma non sono sicuro di come ricollegare il pulsante alla funzione delete_movie() in modo che cancelli il filmato corretto associato al pulsante premuto.

Poiché ci sarà un pulsante accanto a ciascun film, l'elemento del modulo deve essere chiamato dinamicamente, sto indovinando. Ma se è chiamato dinamicamente, come posso riportare il valore corretto alla funzione? Questo è quello che ho ottenuto finora:

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

Grazie in anticipo per qualsiasi aiuto!

risposta

10

Basta aggiungere un ingresso nascosto a ogni forma con l'elemento id/nome che si desidera eliminare il valore :)

ad es.

<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

Brillante. Grazie Tommaso! – Barrett

+0

@Barrett felice che ha aiutato :) per favore ricorda di contrassegnare la risposta come corretta se ha risolto il tuo problema :) –

+0

Fatto. Sono un principiante allo Stack Overflow e alla codifica;) – Barrett

Problemi correlati