这个学期我正在上python课,我想以网页的形式在我的程序中添加图形用户界面。一部分我懒得学 Tkinter,一部分我只是在挑战自己,一部分我只是喜欢用 HTML/JS 编写接口。
我知道使用 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函数之类的东西,但是导入似乎是一种丑陋的开始方式。
有什么推荐的?