这个学期我正在做一个python类,我想用网页的形式向我的程序添加图形用户界面。部分我不能为学习Tkinter而困扰,部分我只是在挑战自己,部分我只是喜欢用HTML/JS编写接口。执行python脚本的python服务器
我知道关于使用SimpleHTTPServer创建HTTP服务器的基础知识,但是我需要的是一种让我的网页能够将ajax命令发送到服务器上的python脚本的方式,然后它将执行服务器端,然后接收脚本输出。有点像Sage如何做。
如何为SimpleHTTPServer创建一个扩展,然后可以使用它来提供python脚本的输出?我需要一个非常通用的解决方案,以便在编写任何python脚本时,我可以轻松地将其包装在某种界面中,将其放入服务器的文件夹中,而无需执行其他任何操作,只需使用AJAX调用它即可服务器将处理剩下的事情。
我目前的想法是有一个ServerSideScript
类,我的脚本可以扩展,使用一个称为output
的函数。我拥有的每个脚本都应该包含一个名为Script的ServerSideScript的子类。当服务器被要求以服务,例如,foo.py,它注意到了延伸和不一样的东西:
if self.path[-3:]: == ".py":
return getScriptOutput(self.path)
...
def getScriptOutput(self, path):
from path import Script # obviously not going to work, since path is a string
return Script().output()
这不能为工作原因在评论中指出,我知道诸如import_module函数之类的东西,但是导入看起来像是一种难看的方式,以此开始。
建议是什么?
你见过[CGIHTTPServer](http://docs.python.org/2/library/cgihttpserver.html)吗? –
@MartijnPieters这是默认的,对吧?我无法在学校电脑上安装额外的模块。 –
为什么不使用合适的网络服务器和像Flask这样的微型框架? –