Conosco JSON per risolvere questo problema, ma ho problemi a implementarlo. Ecco il dettaglio del mio approccio:Invia dati da Python a Javascript (JSON)
- dati sono calcolati in Python
- Dal momento che la dimensione dei dati è dinamico, quindi ho bisogno di usare JavaScript per creare in più righe della tabella HTML per le mie uscite. Di conseguenza, ho bisogno di passare i dati da Python a JavaScript per consentire a Javascript di "vedere" i dati.
codice HTML (sotto è una sezione del mio codice HTML per creare la pagina di uscita):
class OutputPage(webapp.RequestHandler):
def func (a,b):
return a+b #just an example
def get(self):
form = cgi.FieldStorage()
chem_name = form.getvalue('chemical_name')
Para1 = form.getvalue('Para1') #get values from input page--user inputs
Para1 = float(Para1)
Para2 = form.getvalue('Para2') #get values from input page--user inputs
Para2 = float(Para2)
out = func (Para1,Para1)
out_json=simplejson.dumps(out) # I need to send out to JavaScript
#writ output page
templatepath = os.path.dirname(__file__) + '/../templates/'
html = html + template.render (templatepath + 'outputpage_start.html', {})
html = html + template.render (templatepath + 'outputpage_js.html', {})
html = html + """<table width="500" class='out', border="1">
<tr>
<td>parameter 1</td>
<td> </td>
<td>%s</td>
</tr>
<tr>
<td>parameter 2</td>
<td> </td>
<td>%s</td>
</tr>
</table><br>"""%(Para1, Para2)
html = html + template.render(templatepath + 'outputpage_end.html', {})
#attempt to 'send' Python data (out_json) to JavaScript, but I failed.
html = html + template.render({"my_data": out_json})
self.response.out.write(html)
app = webapp.WSGIApplication([('/.*', OutputPage)], debug=True)
codice JavaScript (io uso JavaScript per creare ulteriori tabelle ingressi sul nome del file fly: 'outputpage_js. html '):
Grazie per l'aiuto!
Puoi spiegare, perché stai cercando di passare i dati nello stesso modello che genererà quindi il codice HTML? Non vedo alcun caricamento dinamico (come AJAX) nella tua domanda, solo il codice JavaScript non necessario che genererà parte del modello che non sei stato in grado di generare usando Python. Ho ragione? – Tadeck
@Tadeck, la ragione per usare JavaScript è perché ho bisogno di usare JavaScript per creare tabelle html. Inoltre, la dimensione dei miei dati è dinamica. Quindi penso che sia meglio usare JSON per passare dati a JavaScript e lasciarlo gestire. Inoltre, ho anche bisogno di usare Jqplot per generare figure. Attualmente, genero tutti i valori in una tabella html nascosta e consento a JavaScript di ottenerli selezionando nomi id. Ma penso che ci dovrebbe essere un modo migliore per farlo. –
@Tao, i dati vengono aggiornati in modo dinamico? Il significato vedrà l'utente cambiare i dati al volo senza un aggiornamento della pagina? Se è dinamico, è necessario il codice AJAX per richiedere i dati JSON da un URL che restituisce solo JSON (senza HTML). Se i dati sono noti quando viene caricata la pagina, è sufficiente aggiungere la struttura dei dati JavaScript al modello di pagina. Non sono richiesti JSON o AJAX. – jiggy