Javascript将字符串发送到python脚本

Posted

技术标签:

【中文标题】Javascript将字符串发送到python脚本【英文标题】:Javascript send string to python-script 【发布时间】:2017-06-07 16:10:44 【问题描述】:

我的本​​地主机上运行了一个 (html/js) 应用程序。我想将一些信息(字符串)发送到在后台运行的 python 脚本,它只会打印字符串,或者将其保存为 .txt 文件。

似乎 websockets 可以完成这项工作,但我无法解决这个问题(在我看来,这是一个简单的问题..?)。所有示例或库都针对特定用途或同时被贬低。另外,也许有人可以向我指出另一个原则,例如 REST。? 我并不是很喜欢 web/ip/internetthings,但我需要这个来让网页启动一些 python 程序。 关于如何实现这一点的任何提示?

【问题讨论】:

【参考方案1】:

我正在做类似的事情,让 Web 服务器 (nodejs) 控制我的 raspberrypi (python)。 我建议你简单地通过你的 js 服务器生成你的 python 脚本,并让它们通过 stdin/stdout 进行通信。

以 nodejs 为例:

var spawn = require('child_process').spawn;
var child = spawn(
    'python3',
    ['./py/pi-ctrl.py']
);
var child_emit = function (message) 
    child.stdin.write(message+"\n");

然后你的 js 可以向你的 python 脚本“发送”任何东西,它监听标准输入:

while True:
    line = input().split()

【讨论】:

抱歉,我没有节点服务器,但现在我正在从本地主机运行所有内容。稍后,可以将包放在 python 服务器上。 “本地主机”是什么意思?我了解您的 html/js 尚未由服务器提供服务,您只需在浏览器中打开它们,对吗?如果您没有服务器,我认为您无法在 Python 脚本和 Web 应用程序之间交换消息。也许试试 django? 我暂时使用 Tomcat 或 PyCharm 的内置服务器在我的本地主机上托管文件。完成后,我可以通过 localhost:8080 或 localhost:63343 访问 iapplication。可能你的问题也完美地说明了我对“互联网”的误解...... 别担心。所以基本上你有 tomcat 在端口 8080 (HTTP) 上提供你的 html/js/css 文件,以及一个应该写入文件的独立 python 脚本。所以是的,我建议您开始使用 django 并将您的 python 脚本包含到您的服务器代码中。然后,您可以在 HTTP 请求 (REST) 或 websockets 之间进行选择,只要您觉得更简单。

以上是关于Javascript将字符串发送到python脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何将音频 blob 从 javascript 发送到 python?

javascript 找到所有空字段的简单脚本,将其名称添加到字符串,通过页面休假的自定义事件将值发送到Google Analytics。

将 JavaScript 通过 websockets 发送的最后一个字符剥离到 Python

通过管道将电子邮件发送到 python 脚本

使用 sl4a 将事件从 python 发送到 javascript

将变量客户端(JS Ajax)发送到服务器端(Python Django)