我有一個駐留在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-和得到退出代碼)。 –