Existe uma boa maneira de gerar automaticamente o código do cliente JavaScript do servidor Python

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

  •  23-09-2019
  •  | 
  •  

Pergunta

Eu basicamente quero poder:

  • Escreva algumas funções no Python (com a quantidade mínima de meta -dados extras)
  • Transforme essas funções em um serviço da web (com o mínimo de esforço / placa de caldeira)
  • Gerar automaticamente algumas funções / objetos JavaScript para RPC (isso deve me impedir de fazer o maior número possível de coisas estúpidas, como nomes de métodos de névoa, esquecendo os nomes dos métodos, passando o número errado de argumentos)

Exemplo

Pitão:

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>

Um pouco de pesquisa me mostrou algumas abordagens que se aproximam disso:

  • Geração automática de serviços JSON -RPC a partir de funções com um pequeno código de placa de caldeira em Python e depois usando jQuery e json para fazer as chamadas (ainda é fácil de cometer erros com nomes de métodos - ainda preciso estar ciente dos URLs ao chamar, muito irritante para Escreva essas chamadas na concha do Firebug)

  • Usando uma biblioteca como o SOAPLIB para gerar WSDL a partir do Python (adicionando informações de tipo copioso). E de alguma forma converte isso em javascript (não tenho certeza se existe até uma biblioteca para fazer isso)

Mas há alguma abordagem mais próxima do que eu quero?

Nenhuma solução correta

Outras dicas

Sim existe, existe Pijamas. Algumas pessoas cobram isso como o "Gwt para python "

Parece usar um cliente JavaScript XML RPC (existe um plug -in jQuery para isso), juntamente com um servidor XML RPC, é um bom caminho a percorrer.

O plug -in jQuery introspectará seu serviço RPC e preencherá os nomes dos métodos, impossibilitarem mal o nome de uma chamada de método sem receber aviso prévio. No entanto, ele não testará o número de argumentos que você passa ou o tipo deles.

Não parece haver o mesmo suporte para a introspecção no JSON RPC (ou melhor, não parece haver um padrão consistente). Essa abordagem também pode ser usada com Django.

Eu montei algum exemplo de código e o carreguei aqui (Espero que vincular as postagens do blog de alguém não seja considerado uma forma terrível - uma breve pesquisa na Internet não parecia sugerir que era) ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top