2010-05-24 12 views
6

Ad esempio:Passando variabile JavaScript per Python

#!/usr/bin/python 
print "This is python." 

print "<script type="text/javascript"> 
      var pass_to_python = new Number(7) 
     </script>" 

the_number = pass_to_python??? 

Come faccio ad avere il pass_to_python in Python?

risposta

0

HTTP è un semplice protocollo di richiesta-risposta, che non consente di mettere in pausa mid-stream e attendere ulteriori informazioni da parte del cliente - e dal momento che il vostro JS viene eseguito in browser (JS può essere eseguito sul server, ma la maggior parte delle persone non tenterebbe di farlo se non fosse necessario che il codice fosse eseguito nel browser, quindi presumo che l'utilizzo di JS lato server sia fuori questione) e che Python gira sul server, questo è quello che ti serve per far funzionare il tuo codice (oltre a correggere l'annidamento delle quote interrotte nel codice Python).

È necessario caricare il documento completo e quindi emettere una nuova richiesta HTTP.

Questo potrebbe comportare avere il JS impostato location.href (making sure you have a fallback for non-JS clients), potrebbe comportare usando XMLHttpRequest per caricare i nuovi dati in modo asincrono, potrebbe essere meglio con un'altra tecnica (è difficile dire con certezza come il tuo esempio semplifica troppo to tell what X is)

3

Con pyv8 è possibile eseguire javascript da Python.

import PyV8 

class Global(PyV8.JSClass): 
    pass 

with PyV8.JSContext(Global()) as ctxt: 
    the_number = ctxt.eval("var pass_to_python = new Number(7)") 

vedere http://code.google.com/p/pyv8/

+0

perfetto! questo modulo di importazione e allinea i codici ... – opmeitle

+0

Scusa, non capisco cosa stai dicendo. –

+0

una forma di adulazione quello che ho visto, niente di più. – opmeitle

Problemi correlati