¿Hay una manera buena de generar automáticamente el código JavaScript de cliente a partir de pitón lado del servidor

StackOverflow https://stackoverflow.com/questions/2541954

  •  23-09-2019
  •  | 
  •  

Pregunta

Básicamente quiero ser capaz de:

  • Escribir unas pocas funciones en Python (con la mínima cantidad de metadatos extra)
  • Activar estas funciones en un servicio web (con el mínimo de / placa esfuerzo caldera)
  • generar automáticamente algunas funciones javascript / objetos para RPC (esto debería impedirme hacer tantas estupideces como sea posible, como escribir mal nombres de métodos, olvidando los nombres de los métodos, pasando el número incorrecto de argumentos)

Ejemplo

pitón:

def hello_world():
    return "Hello world"

javascript:

...
<!-- This file is automatically generated (either dynamically or statically) -->
<script src="http://myurl.com/webservice/client_side_javascript"> </script> 
...
<script>
$('#button').click(function () {
     hello_world(function (data){ $('#label').text(data)))
}
</script>

Un poco de investigación me ha mostrado algunos de los enfoques que se acercan a este:

  • Generación automática de los servicios RPC-JSON de funciones con un poco de código placa de la caldera en Python y luego usando jQuery y JSON para hacer las llamadas (siendo fácil cometer errores con los nombres de métodos - todavía tienen que ser conscientes de URLs cuando se llama, muy irritante para escribir estas llamadas usted mismo en la cáscara Firebug)

  • Uso de una biblioteca como soaplib para generar WSDL de pitón (mediante la adición de información de tipo abundante). Y entonces de alguna manera convertir esto en javascript (no estoy seguro si hay incluso una biblioteca para hacer esto)

Pero ¿hay alguna aproxima más cerca de lo que quiero?

No hay solución correcta

Otros consejos

Si existe, hay pijamas . Algunas personas facturar a esto como el " GWT para Python"

Parece que el uso de un cliente JavaScript XML RPC (hay plugin de jQuery para esto) junto con un servidor XML RPC es una buena manera de ir.

El plugin jQuery introspección de su servicio RPC y poblará nombres de los métodos hacen que sea imposible MIS escriba el nombre de una llamada a un método sin conseguir alerta temprana. No será sin embargo probar el número de argumentos que se pasa, o su tipo.

No parece que haya el mismo apoyo para la introspección en la RPC JSON (o más bien no parece ser un estándar consistente). Este enfoque también se puede utilizar con Django.

He creado un código de ejemplo y subido aquí (espero que el ligarse a las entradas del blog de uno no se considera terrible forma - una búsqueda breve de internet no parecía sugerir que era) ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top