Javascript 我将如何向我的网站添加python代码运行程序

Javascript 我将如何向我的网站添加python代码运行程序,javascript,python,html,Javascript,Python,Html,好的,基本上,我拥有这个网站:现在有一个使用Ace的HTML/CSS/JS编辑器。现在我需要的是我也有一个python语言的,但我不知道如何使终端或任何显示。我会选择类似于python的东西。只是想知道是否有我可以使用的API,比如 output = evaluatePythonCode("print(\"test\")"); 我基本上想知道并找出这些事情: 我可以使用什么API来执行此操作 语法是什么 我可以用纯HTML/CSS/JS来实现这一点,还

好的,基本上,我拥有这个网站:现在有一个使用Ace的HTML/CSS/JS编辑器。现在我需要的是我也有一个python语言的,但我不知道如何使终端或任何显示。我会选择类似于python的东西。只是想知道是否有我可以使用的API,比如

output = evaluatePythonCode("print(\"test\")");
我基本上想知道并找出这些事情:

  • 我可以使用什么API来执行此操作
  • 语法是什么
  • 我可以用纯HTML/CSS/JS来实现这一点,还是必须使用JS 图书馆
我已经完成了代码输入和语法突出显示(Ace),但我需要的是:

  • 执行

  • 输出

    所有的帮助都将被感谢,如果这个问题不合适或者有什么不合适的地方,请发表评论,我会删除它


谢谢

您有两个选择:要么在浏览器中评估Python,要么将其发布回某个服务器,该服务器可以生成Python进程来评估代码

对于前者,我个人无法保证,但这将是更快的选择,并且不需要服务器来执行代码。在浏览器中有一个REPL可供使用,因此值得一看

对于服务器端执行,有很多方法,所有这些方法都取决于您的服务器技术、您使用的Python解释器、如何处理安全性/DOS等


希望这能帮助您入门。

您有两个选择:要么在浏览器中评估Python,要么将其发布回可以生成Python进程来评估代码的服务器

对于前者,我个人无法保证,但这将是更快的选择,并且不需要服务器来执行代码。在浏览器中有一个REPL可供使用,因此值得一看

对于服务器端执行,有很多方法,所有这些方法都取决于您的服务器技术、您使用的Python解释器、如何处理安全性/DOS等


希望这能帮助您入门。

首先创建一个file.py来编写代码并执行

您可以使用javascript向python文件发送
XMLHttpRequest

var xhr = new XMLHttpRequest();
xhr.open("POST", "exec?text=" + code, true);
xhr.onload = function(e) {
    var output = JSON.parse(xhr.response);
    // do something with the output
}
xhr.send();
并在python文件中使用Flask和subprocess:

import subprocess
from flask import Flask, request
app = Flask(__name__)
@app.route('/exec', methods=['POST']) // route app to /exec
def result():
    with open('file.py', 'w') as code: // 'w' means to override existing code in the file
        code.write(request['code']) // write the code
    return subprocess.check_output(["python", "file.py"]) // execute the code using the terminal

返回代码的输出。如果这不起作用,请告诉我。谢谢

首先创建一个file.py来编写代码并执行

您可以使用javascript向python文件发送
XMLHttpRequest

var xhr = new XMLHttpRequest();
xhr.open("POST", "exec?text=" + code, true);
xhr.onload = function(e) {
    var output = JSON.parse(xhr.response);
    // do something with the output
}
xhr.send();
并在python文件中使用Flask和subprocess:

import subprocess
from flask import Flask, request
app = Flask(__name__)
@app.route('/exec', methods=['POST']) // route app to /exec
def result():
    with open('file.py', 'w') as code: // 'w' means to override existing code in the file
        code.write(request['code']) // write the code
    return subprocess.check_output(["python", "file.py"]) // execute the code using the terminal

返回代码的输出。如果这不起作用,请告诉我。谢谢

我猜这个问题将被认为过于宽泛,无法以这种形式合理回答。我建议把这些问题分解成更小的问题,如果您有更具体的问题,请告诉我们。例如,有文本输入部分、语法高亮显示、执行和显示REPL结果,这对一些人来说更好吗?感谢您的建议,在立即否决投票之前:)现在您已经缩小了问题范围,情况好多了,谢谢。我很确定
repl.it
和大多数类似的网站只是通过管道将事情发送到服务器上执行,这里的理想解决方案可能是通过emscripten的2.x或后续项目运行CPython或PyPy,该项目构建的是wasm而不是asm.js……但事实上,您至少提前了几个月就可以实现这一点。各种各样的emscripten 1.x Python项目,比如PyPy.js,今天已经相当不错了,可能是最接近未来的项目,但在某些方面,PyBee、Brython、Skulpt、Jaspy等今天可能会更好,特别是因为它们今天可能会得到更多的使用。因此,在做出决定之前,你应该至少简单地看一看所有的选项。我猜这个问题会被认为过于宽泛,无法以这种形式合理地回答。我建议把这些问题分解成更小的问题,如果您有更具体的问题,请告诉我们。例如,有文本输入部分、语法高亮显示、执行和显示REPL结果,这对一些人来说更好吗?感谢您的建议,在立即否决投票之前:)现在您已经缩小了问题范围,情况好多了,谢谢。我很确定
repl.it
和大多数类似的网站只是通过管道将事情发送到服务器上执行,这里的理想解决方案可能是通过emscripten的2.x或后续项目运行CPython或PyPy,该项目构建的是wasm而不是asm.js……但事实上,您至少提前了几个月就可以实现这一点。各种各样的emscripten 1.x Python项目,比如PyPy.js,今天已经相当不错了,可能是最接近未来的项目,但在某些方面,PyBee、Brython、Skulpt、Jaspy等今天可能会更好,特别是因为它们今天可能会得到更多的使用。所以,在做决定之前,你应该至少简单地看一下所有的选项。谢谢!我认为PyPy.js对我来说似乎更容易,我不想处理服务器端执行:)谢谢!我认为PyPy.js对我来说似乎更容易,我不想处理服务器端执行:)