Есть ли хороший способ автоматического создания клиентского кода Javascript с Python на стороне сервера?

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

  •  23-09-2019
  •  | 
  •  

Вопрос

Я в основном хочу иметь возможность:

  • Напишите несколько функций на Python (с минимальным количеством дополнительных метаданных)
  • Превратите эти функции в веб-сервис (с минимумом усилий/шаблона).
  • Автоматически генерировать некоторые функции/объекты javascript для rpc (это должно помешать мне делать как можно больше глупых вещей, таких как опечатка в именах методов, забывание названий методов, передача неправильного количества аргументов).

Пример

питон:

def hello_world():
    return "Hello world"

яваскрипт:

...
<!-- 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>

Небольшое исследование показало мне некоторые подходы, которые близки к этому:

  • Автоматическое создание сервисов json-rpc из функций с небольшим стандартным кодом на Python, а затем использование jquery и json для выполнения вызовов (все еще легко допустить ошибки с именами методов - все равно нужно знать URL-адреса при вызове, что очень раздражает напишите эти вызовы самостоятельно в оболочке Firebug)

  • Использование библиотеки типа Soaplib для генерации wsdl из Python (путем добавления большого количества информации о типах).А затем каким-то образом преобразовать это в javascript (не уверен, есть ли вообще библиотека для этого)

Но есть ли подходы, более близкие к тому, что я хочу?

Нет правильного решения

Другие советы

Да, есть, есть Пижамы.Некоторые называют это «ГВТ для Python"

Похоже, что использование Javascript XML RPC-клиента (для этого есть плагин jquery) вместе с XML RPC-сервером - хороший способ.

Плагин jquery проанализирует вашу службу RPC и заполнит имена методов, чтобы исключить возможность неправильного ввода имени вызова метода без раннего предупреждения.Однако он не будет проверять количество передаваемых вами аргументов или их тип.

Похоже, что в json rpc нет такой же поддержки самоанализа (или, скорее, не существует единого стандарта).Этот подход также можно использовать с django.

Я собрал пример кода и загрузил его. здесь (Я надеюсь, что ссылки на сообщения в блоге не считаются ужасной формой — краткий поиск в Интернете, похоже, не показал, что это так)...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top