Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有从服务器端python自动生成javascript客户端代码的好方法_Javascript_Python_Rpc - Fatal编程技术网

有没有从服务器端python自动生成javascript客户端代码的好方法

有没有从服务器端python自动生成javascript客户端代码的好方法,javascript,python,rpc,Javascript,Python,Rpc,我基本上希望能够: 用python编写一些函数(使用最少的额外元数据) 将这些功能转换为web服务(以最小的工作量/工作量) 自动为rpc生成一些javascript函数/对象(这应该可以防止我做尽可能多的愚蠢的事情,比如键入错误的方法名、忘记方法名、传递错误数量的参数) 示例 python: def hello_world(): return "Hello world" javascript: ... <!-- This file is automatically gene

我基本上希望能够:

  • 用python编写一些函数(使用最少的额外元数据)
  • 将这些功能转换为web服务(以最小的工作量/工作量)
  • 自动为rpc生成一些javascript函数/对象(这应该可以防止我做尽可能多的愚蠢的事情,比如键入错误的方法名、忘记方法名、传递错误数量的参数)
示例

python:

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>
。。。
...
$(“#按钮”)。单击(函数(){
hello#world(函数(数据){$('#标签')。文本(数据)))
}
一些研究向我展示了一些接近这一点的方法:

  • 从函数中自动生成json rpc服务,在python中使用一点锅炉板代码,然后使用jquery和json进行调用(仍然很容易在方法名称上出错-调用时仍然需要注意URL,在firebug shell中自己编写这些调用非常烦人)

  • 使用像soaplib这样的库(通过添加大量类型信息)从python生成wsdl,然后以某种方式将其转换为javascript(甚至不确定是否有库可以这样做)


但是有什么方法更接近我想要的吗?

是的,有。有些人认为这是“Python版”

看起来使用javascript XML RPC客户端(有jquery插件)和XML RPC服务器是一个不错的方法

jquery插件将内省您的rpc服务,并填充方法名称,这样就不可能在没有得到早期警告的情况下错误键入方法调用的名称。但是,它不会测试您传递的参数数量或它们的类型

对json rpc的自省似乎没有相同的支持(或者说似乎没有一致的标准)。这种方法也可以用于django


我整理了一些示例代码并上传了它(我希望链接到一个人的博客帖子不会被认为是糟糕的形式——对互联网的简短搜索似乎并不表明它是糟糕的形式)…

是的,你需要去接受前面问题的一些答案!也许其他人不太擅长回答问题:)。想要编写python代码并远程轻松执行它的原因不是编写python而不是javascript。而是在服务器上运行东西(从而修改服务器上的状态)作为客户端操作的结果。如果您想编写python而不是javascript(以及如果您想方便地访问一组小部件),那么Pyjamas可能非常有用。我听说过Pyjamas,但这真的可以生成javascript函数,而不是要求您用python编写整个应用程序吗(或者更确切地说,类似python的语言具有微妙的不同语义)。我在寻找一些轻量级的东西。是的,它可以。你不必全部使用;有一个python到javascript编译器,它输出的javascript与你的python函数做的事情相同。你还需要在服务器端做一些事情,为你的数据生成jsonrpc或普通json URI,但这一点都不难。嗯。仍然不太确定睡衣是否适合使用。似乎你需要跨越很多障碍才能真正完成这项任务。相关信息:(i)当使用完整的睡衣编译器时,你无法从模板html页面(共享页面中的页面)访问javascript,因为生成的javascript加载在iframe中。但是,您可以使用window.frames[0]访问此iframe并提取变量,然后执行这些变量。(ii)如果定义模块test.py,则其中的任何函数都将在该iframes范围内名为“test”的对象上运行。独立编译器(pyjampiler)在您计算出编译代码所依赖的javascript模块并自己包含它们之前,似乎不会生成可以执行的代码-我没有尝试这样做,但如果感觉这样做可能会非常痛苦。当您使用完整的编译器时,这些模块会作为脚本标记插入html中。