Si hallas algún error en tu código o proyecto, recuerda probar siempre en un entorno de testing antes subir el código al proyecto final.
Solución:
Encuentre un intérprete de JavaScript que tenga enlaces de Python. (¿Probar Rhino? ¿V8? ¿SeaMonkey?). Cuando haya encontrado uno, debería venir con ejemplos de cómo usarlo desde python.
Python en sí mismo, sin embargo, no incluye un Intérprete de JavaScript.
Para interactuar con JavaScript desde Python, uso webkit, que es el renderizador del navegador detrás de Chrome y Safari. Hay enlaces de Python a webkit a través de Qt. En particular, hay una función para ejecutar JavaScript llamada evaluarJavaScript().
Aquí hay un ejemplo completo para ejecutar JavaScript y extraer el HTML final.
Una alternativa interesante que descubrí recientemente es el módulo de enlace de Python, que se puede usar para comunicarse con un proceso de NodeJs (motor v8).
El uso sería muy similar a los enlaces pyv8, pero puede directamente use cualquier biblioteca de NodeJs sin modificaciones, lo cual es un importante punto de venta para mí.
Su código Python se vería así:
val = js.call('add2', var1, var2)
o incluso:
add2 = js.callable('add2')
val = add2(var1, var2)
Sin embargo, las funciones de llamada son definitivamente más lentas que pyv8, por lo que depende en gran medida de sus necesidades. Si necesita usar un npm
paquete que hace mucho trabajo pesado, bond
es genial. Incluso puede tener más procesos de nodejs ejecutándose en paralelo.
Pero si solo necesita llamar a un montón de funciones JS (por ejemplo, para tener las mismas funciones de validación entre el navegador/backend), pyv8
definitivamente será mucho más rápido.
Calificaciones y reseñas
Si te mola el asunto, tienes la habilidad dejar un artículo acerca de qué le añadirías a esta sección.