我有一个python脚本驻留在web服务器上(运行node.js)并进行一些机器学习计算。必须使用在Web浏览器中运行的javascript将数据提供给python脚本。如何才能做到这一点?我想知道完整的设置。目前,服务器只是localhost。
答案 0 :(得分:0)
我相信您需要在服务器上使用一个简单的API来接受来自客户端的输入,这可以通过JavaScript完成。
您可以查看以下几种技术:
答案 1 :(得分: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.js zerorpc
客户端。