我有一个python程序,我想使用Node JS在HTML页面上打印该程序的输出。使用'child_process'调用python脚本。我想在HTML页面上打印't'的值。有没有办法做到这一点?
script.py
import time
t=0
def main():
while 1:
t =t+1
print t
time.sleep(2)
# Start process
if __name__ == '__main__':
main()
这里我想每2秒打印一次't'的值。
app.js
var sys =require('sys');
var myPythonScript ="script.py";
var path =resolve("C:\\Python27\\python.exe");
var pythonExecutable = path;
const spawn = require('child_process').spawn;
const scriptExecution = spawn(pythonExecutable, [myPythonScript]);
scriptExecution.stdout.on('data', (data) => {
console.log(data);
});
});
在HTML页面上单击按钮时,将调用此JS函数。
答案 0 :(得分:1)
我有一个想法 - 你可以创建一个简单的烧瓶应用程序(http://flask.pocoo.org/),它将监听特定的端口。 当此应用程序收到REST API请求时,它将执行您的python代码并将结果作为响应返回。 在javascript方面,您只需要创建一个ajax请求,该请求将向烧瓶应用程序提供请求。
通过这种方式,您可以轻松地混合使用python和javascript。
答案 1 :(得分:0)
您可以使用urllib发送.py文件的输出:
import urllib
output="test"
url="post.php"
param=urllib.urlencode({'output':output})
urllib.urlopen(url,param)
获取PHP中的帖子:
<?php
$output = $_POST["output"];
echo $output;
?>
要获取Node.js中的post参数,您可以阅读:
https://scotch.io/tutorials/use-expressjs-to-get-url-and-post-parameters
答案 2 :(得分:0)
是的,您可以在python上进行编码,然后使用rapydscript和npm可以将python代码转换为Js代码,并将其打印在HTML页面上。 rapydscript最好的部分是,它不需要任何服务器。
例如: 下面的代码是python中的警报功能:
def greet():
alert("Hello World!")
这将转换为以下Js代码:
function greet() {
alert("Hello World!");
}