two*_*ine 11 python interpreter web-applications
我正在尝试建立一个类似于Codecademy的教育编码网站,但我坦率地说应该采取什么步骤.在webapp中包括一个简单的python解释器,我能指出正确的方向吗?
jdi*_*jdi 10
一种选择可能是使用PyPy来创建沙盒python.它会限制某人可以做的外部操作.
完成设置之后,您的网站将获取代码源,通过ajax将其发送到您的Web服务器,服务器将在沙盒python实例的子进程中运行代码.如果耗时超过5秒,您也可以终止该过程.然后返回输出作为对客户端的响应.
有关PyPy沙箱的帮助,请参阅以下链接:
http://doc.pypy.org/en/latest/sandbox.html
http://readevalprint.com/blog/python-sandbox-with-pypy.html
创建一个完全交互式的REPL将更加复杂.您需要为服务器上的每个客户端保留一个解释器.然后接受输入的ajax"行"并通过与正在运行的进程通信来运行它们,并返回输出.
总的来说,不是微不足道的.你需要一些强大的开发技能来舒服地做到这一点.如果你刚刚学习,你可能会发现这项任务有点令人生畏.
这里还有比你想象的还要多的事情.
主要问题是你不能让人们在你的网络服务器上运行任意Python代码.例如,如果他们这样做会发生什么
import os
os.system("rm -rf *.*")
Run Code Online (Sandbox Code Playgroud)
很明显,你必须安全地运行这个Python代码.但是,那么你有,因为它是如何动态保护的Python,这基本上是不可能的问题.因此,您可能不得不在虚拟机中运行Python shell,这会带来令人头痛的问题.
小智 5
最近的一种选择是使用repl。
这个选项很棒,因为编译器是使用 JavaScript 制作的,所以编译和执行是在用户端进行的,这意味着服务器没有漏洞。
他们有以下编译器:Python3、Python、Javascript、Java、Ruby、PHP ...
我强烈建议您在http://repl.it上查看他们的网站
| 归档时间: |
|
| 查看次数: |
11571 次 |
| 最近记录: |