有没有好的方法从服务端Python自动生成JavaScript客户端代码
我基本上想要做到以下几点:
- 用Python写几个函数(尽量少加一些额外的说明)
- 把这些函数变成一个网络服务(尽量少花力气和模板代码)
- 自动生成一些JavaScript的函数或对象,用于远程过程调用(rpc)(这样可以避免很多低级错误,比如打错方法名、忘记方法名、传错参数数量)
示例
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>
经过一些研究,我发现了一些接近我想要的方案:
从函数自动生成json-rpc服务,只需要写一点模板代码,然后用jquery和json来进行调用(不过在方法名上还是容易出错,调用时还得注意网址,自己在firebug shell里写这些调用真的很烦)
使用像soaplib这样的库从Python生成wsdl(需要添加很多类型信息)。然后再想办法把它转换成JavaScript(不确定是否有库可以做到这一点)
但有没有更接近我想要的方案呢?
2 个回答
0
看起来,使用一个JavaScript的XML RPC客户端(有一个jQuery插件可以用)配合一个XML RPC服务器是个不错的选择。
这个jQuery插件会自动检查你的RPC服务,并列出方法名称,这样你在调用方法时就不容易打错名字了,因为它会提前给你警告。不过,它不会检查你传入的参数数量或者类型。
对于JSON RPC,似乎没有同样的自动检查支持(或者说没有一个统一的标准)。不过,这种方法也可以和Django一起使用。
我整理了一些示例代码,并把它上传到这里(我希望链接到自己的博客文章不是个坏事,简单搜索了一下网络似乎也没有说不可以)...