2010-05-24 19 views
6

Por ejemplo:Pasando variables JavaScript para 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??? 

¿Cómo consigo el pass_to_python en Python?

Respuesta

0

HTTP es un protocolo de petición-respuesta simple, que no le permite hacer una pausa a mitad de camino y esperar para obtener más información desde el cliente - y desde su JS se ejecuta en segundo navegador (JS puede ejecutarse en el servidor, pero la mayoría de la gente no intentaría esto si no necesitaran el código para ejecutarse en el navegador, entonces estoy asumiendo que usar JS del lado del servidor está fuera de discusión) y el Python se ejecuta en el servidor, eso es lo que necesita para que su código funcione (además de corregir el anidamiento de comillas rotas en el código de Python).

Debe cargar el documento completo y luego emitir una nueva solicitud HTTP.

Esto podría implicar el tener configurado el JS location.href (making sure you have a fallback for non-JS clients), que podría implicar el uso de XMLHttpRequest para cargar nuevos datos de forma asíncrona, podría ser mejor usar otra técnica (es difícil decir con certeza como su ejemplo simplifica demasiado to tell what X is)

3

Con pyv8 puede ejecutar javascript desde dentro de 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)") 

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

+0

perfecto! este módulo de importación y líneas de los códigos ... – opmeitle

+0

Lo siento, no entiendo lo que dices. –

+0

una forma de adulación de lo que vi, nada más. – opmeitle

Cuestiones relacionadas