繁体   English   中英

使 Javascript 执行 Python 脚本

[英]Make Javascript Execute a Python Script

我有一个问题已经在这里和互联网上的其他地方被问过多次*,但我看到的答案不完整或无效。

我想要一个 JavaScript function runPy() ,在被调用时(在浏览器中,例如通过按钮单击),将在我的服务器中执行一个test.py脚本调用测试。

假设 test.py 只是为了创建一个文本文件并在其中写入“hello world”而设计的

Python

f = open('test.txt', 'w+')
f.write('hello world')

根据其他答案,我拼凑了以下 JavaScript/jQuery function:

JavaScript

function runPy() {
    $.ajax({
        type:'POST',
        url:'test.py',
        success: function(data) {                                                     
            console.log(data)
        };
    });
}

现在,这当然是不正确的。 正如人们所预料的那样,它不是运行 Python 脚本,而是将脚本的内容打印到控制台:

安慰

f = open('test.txt', 'w+')
f.write('hello world')

我将如何 go 关于编辑我的 JavaScript(和/或 Python)以实现我想要的功能? 在一个完美的世界中,我想避免导入任何新的依赖项(我已经看到了一些依赖于 Flask 或 Django 的答案)但当然乞丐不能成为选择者。

Additionally, if I will allow myself to get greedy, it would be very nice to be able to pass arguments to the Python script as well, or even use JavaScript to call a specific function in the Python script, and have the results passed back to客户端 JavaScript。

*类似问题
从JS调用python function
如何从 javascript 调用 python 脚本?
从 JavaScript 函数运行 Python 脚本

你走在正确的道路上。

但是,这就是 POST 不起作用的原因。 除了 HTML 文件类型外,发出 POST 调用以获取服务器上的 static 文件(即 random.js、random.css 等)将打印原始文件内容。 在这种情况下,您需要在服务器端后端代码上处理这个问题。 我不知道您使用的是哪个后端框架,但这里有一些文章可以帮助您:

NodeJS:https://medium.com/swlh/run-python-script-from-node-js-and-send-data-to-browser-15677fcf199f

.NET: https://medium.com/better-programming/running-python-script-from-c-and-working-with-the-results-843e68d230e5

Java: 从 Java 运行 a.py 文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM