HTML页面上的Python输出

时间:2017-03-18 15:17:47

标签: javascript python html node.js

我有一个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函数。

3 个答案:

答案 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

How do you extract POST data in Node.js?

https://dzone.com/articles/get-post-parameter-nodejs

答案 2 :(得分:0)

是的,您可以在python上进行编码,然后使用rapydscript和npm可以将python代码转换为Js代码,并将其打印在HTML页面上。 rapydscript最好的部分是,它不需要任何服务器。

例如: 下面的代码是python中的警报功能:

def greet():
    alert("Hello World!")

这将转换为以下Js代码:

function greet() {
    alert("Hello World!");
}

https://www.npmjs.com/package/rapydscript-ng