2013-03-21 7 views

risposta

4

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/

-1

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> 
+1

L'OP ha specificamente menzionato che sapeva già come farlo e voleva andare nella direzione opposta. – pydsigner

2

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> 
+0

come chiameresti la funzione sul caricamento della pagina invece del pulsante di clic dell'utente e quindi passerai i dati da javascript al pallone –