So come passare i dati con un modello jinja da python a javascript, ma voglio passare una variabile javascript in python. Mi piacerebbe farlo senza ricaricare la pagina. È possibile?Passaggio di dati da javascript a Flask
risposta
Sì, come ha detto monkut: credo che vogliate usare JSON e Javascript/jQuery.
Ciò consentirà la comunicazione dal client al server e viceversa.
L'esempio più pertinente che ho trovato era nei frammenti Flask/modelli: http://flask.pocoo.org/docs/patterns/jquery/
creare una stringa JSON dal codice vista dire, jsonData
e nel vostro Jinja Template, scrivere qualcosa come
<script type="text/javascript">
var data = {{ jsonData }};
</script>
L'OP ha specificamente menzionato che sapeva già come farlo e voleva andare nella direzione opposta. – pydsigner
Ho fatto un lavoro simile nel mio progetto e vorrei condividere il mio codice qui. Ho bisogno di scoprire quale post è selezionato e stavo impostando il post selezionato come variabile globale sul lato server, in modo che io possa usarlo per un confronto successivo. Ecco come passo il mio post selezionato in Javascript.
<a class="label label-primary" onclick="myFunction({{very.id}})" > Compare</a>
Da Javascript a Flask.
function myFunction(x) {
$.getJSON($SCRIPT_ROOT + '/check_selected', {
post: x
}, function(data) {
var response = data.result;
console.log(response);
}
});
}
Ecco come restituisco il risultato del pallone utilizzando JSON.
import json
@main.route('/check_selected', methods=['GET','POST'])
def check_selected():
global selected
post = request.args.get('post', 0, type=int)
return json.dumps({'selected post': str(post)});
Come accennato here, abbiamo bisogno di includere Google AJAX API per caricare jQuery:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="{{
url_for('static', filename='jquery.js') }}">\x3C/script>')</script>
come chiameresti la funzione sul caricamento della pagina invece del pulsante di clic dell'utente e quindi passerai i dati da javascript al pallone –
utilizzare una richiesta Ajax? – monkut