【问题标题】:Python output on HTML pageHTML页面上的Python输出
【发布时间】:2017-03-18 15:17:46
【问题描述】:

我有一个 python 程序,我想使用 Node JS 在 HTML 页面上打印该程序的输出。正在使用“child_process”调用 python 脚本。我想在 HTML 页面上打印 't' 的值。有什么办法吗?

脚本.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 函数。

【问题讨论】:

    标签: javascript python html node.js


    【解决方案1】:

    我有一个想法给你——你可以创建一个简单的烧瓶应用程序 (http://flask.pocoo.org/),它会监听一个特定的端口。 当此应用程序将收到 REST API 请求时,它将执行您的 python 代码并将结果作为响应返回。 在 javascript 方面,您只需要创建一个 ajax 请求,该请求会将请求提供给烧瓶应用程序。

    这样,python和javascript都可以很舒服的混合使用了。

    【讨论】:

    • 我不想在烧瓶上执行它,因为我的其余代码和其他功能都在 Node JS 上。无论如何在Node JS中使用javascript来做到这一点?
    【解决方案2】:

    您可以使用 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

    【讨论】:

      【解决方案3】:

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

      例如: 下面的代码是python中的一个alert函数:

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

      这将转换为下面的Js代码:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-20
        • 1970-01-01
        • 2013-05-27
        • 1970-01-01
        相关资源
        最近更新 更多