我有一个驻留在Web服务器(运行node.js)并执行一些机器学习计算的python脚本。必须使用运行在Web浏览器中的JavaScript将数据提供给python脚本。如何才能做到这一点?我想知道完整的设置。目前,服务器只是本地主机。服务器端的python脚本和web浏览器中的javascript之间的通信
0
A
回答
0
我相信你需要一个简单的API接受来自客户端的输入,可以通过JavaScript来完成。
有几种技术,你可以看看:
- 阿贾克斯。
- WebSockets。
0
最好的方法是使用zerorpc
,这是一个用于Python和Node.js的套接字服务器和客户端。
安装Python的:
pip install zerorpc
安装在节点:
npm install zerorpc
Python的服务器上的文件:
import zerorpc
class HelloRPC(object):
def hello(self, name):
print "message from host: %s" % name
return raw_input("Enter your message: ")
s = zerorpc.Server(HelloRPC())
s.bind("tcp://0.0.0.0:4242")
s.run()
Node.js的客户端文件:
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
var zerorpc = require("zerorpc");
var client = new zerorpc.Client();
client.connect("tcp://127.0.0.1:4242");
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/myaction', function(req, res) {
client.invoke("hello", "RPC", function(error, res, more) {
console.log(res);
res.send(req.body.name);
});
});
app.listen(8080, function() {
console.log('Server running at http://127.0.0.1:8080/');
});
虽然这里的示例代码相对简单,但它应该让您开始。此设置的整体逻辑如下:
- 使用快速摆脱网页数据(存储为
req.body.name
) - 拿这个数据,并通过
zerorpc
发送到你的Python服务器,它可以处理数据和将其发送回Node.jszerorpc
客户端。
相关问题
- 1. 浏览器和Web服务器通讯
- 2. python客户端和java服务器之间的通信
- 3. Winform客户端和服务器的Web服务之间的通信
- 4. 用java编写的浏览器和服务器之间的通信
- 5. Web浏览器和java之间的通信
- 6. 在Go中的客户端和服务器之间的通信
- 7. API Web扩展,在浏览器和内容脚本之间进行通信
- 8. 不同服务器上的Web服务之间的通信
- 9. 如何验证服务器端Web服务的浏览器IP
- 10. JavaScript和PHP中的Web服务之间的安全通信
- 11. 服务器和浏览器之间的时间差
- 12. 服务器和浏览器之间的时间同步
- 13. 服务器端脚本中的JavaScript
- 14. Java服务器和Android手机之间的客户端/服务器通信
- 15. android和两个php web服务器之间的通信
- 16. Web服务器和树莓派之间的通信
- 17. 服务器端浏览器
- 18. Silverlight和服务器端之间的通信方式是什么?
- 19. c#客户端和java服务器之间的安全通信
- 20. 服务器和客户端之间的通信进度
- 21. Windows客户端和Linux服务器之间的通信?
- 22. 服务器和客户端连接之间的通信C#
- 23. Windows客户端和Linux服务器之间的通信
- 24. C客户端和Java服务器之间的通信错误
- 25. js客户端和asp.net服务器之间的通信
- 26. Java服务器和客户端之间的通信
- 27. 客户端和服务器之间的silverlight通信
- 28. 服务器和客户端之间通信的实现
- 29. SocketServer在java服务器和php客户端之间的通信
- 30. java和php之间的简单客户端服务器通信
一种方法是让您的浏览器端JavaScript通过API将数据发送到您的服务器。然后让你的服务器端JavaScript调用Python脚本并像传递Bash命令一样传递数据[通过使用exec](https://stackoverflow.com/questions/37732331/execute-bash-command-in-节点-JS-和得到退出代码)。 –