我如何在我的网站上添加一个python代码运行器

时间:2018-06-01 22:21:41

标签: javascript python html

好吧,基本上,我拥有这个网站:https://quarkedit.ga现在有一个使用Ace的HTML / CSS / JS编辑器。现在我需要的是我也有一个python语言,但我不知道如何制作终端或任何显示。我正在寻找类似https://repl.it的python之类的东西。只是想知道是否有任何我可以使用的API,如

output = evaluatePythonCode("print(\"test\")");

我基本上想知道并找出这些东西:

  • 我可以使用哪些API来执行此操作?
  • 语法是什么?
  • 我可以使用纯HTML / CSS / JS执行此操作,还是必须使用JS 库中?

我有完成代码的输入,以及语法高亮(Ace)但我需要的是:

  • 执行
  • 输出

    我们将非常感谢所有帮助,如果这个问题不恰当或只是评论,我会将其删除。

谢谢!

2 个答案:

答案 0 :(得分:1)

您有两个选择:在浏览器中评估Python或将其发回给可以生成Python流程以评估代码的服务器。

对于前者there are a few Python-implemented-via-JavaScript solutions,我无法亲自担保,但这将是更快的选择,并且不会要求您使用服务器来执行代码。 PyPy.js在浏览器中有一个可以播放的REPL,因此值得一看。

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

希望这有助于您入门。

答案 1 :(得分:1)

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

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

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

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