执行python脚本的python服务器

2024-10-03 09:20:11 发布

您现在位置:Python中文网/ 问答频道 /正文

这学期我在上一门python课程,我想以网页的形式在我的程序中添加图形用户界面。一方面我懒得学习Tkinter,另一方面我只是在挑战自己,另一方面我喜欢用HTML/JS编写接口。在

我知道使用SimpleHTTPServer创建HTTP服务器的基本知识,但我需要的是让我的web页面向服务器上的python脚本发出ajax命令,然后在服务器端执行,然后接收脚本输出。有点像Sage是怎么做的。在

如何为SimpleHTTPServer创建一个扩展,然后使用它提供python脚本的输出?我需要一个非常通用的解决方案,这样,对于我编写的任何python脚本,我可以轻松地将其包装在某种接口中,将其放入服务器的文件夹中,而不必做任何其他操作,只需使用AJAX调用它,我的服务器将处理其余的脚本。在

我目前的想法是用一个名为output的函数来扩展我的脚本的ServerSideScript类。我拥有的每个脚本都应该包含一个名为script的ServerSideScript子类。例如,当要求服务器提供服务时,食品,它会注意到扩展并执行以下操作:

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函数之类的东西,但是导入似乎是一种丑陋的方法。在

推荐什么?在


Tags: path函数importself服务器脚本网页output
2条回答

您可能想看看IPython notebooks-它本质上为您提供了一个基于web的交互式pythonshell,它甚至集成了matplotlib等。您可以将Python脚本保存为笔记本,在语句之间添加文本等

enter image description here

如果想共享输出,但不想共享交互,也可以使用nbviewer。在

Python附带电池;^{}将使用CGI标准运行Python脚本:

The CGIHTTPServer module defines a request-handler class, interface compatible with BaseHTTPServer.BaseHTTPRequestHandler and inherits behavior from SimpleHTTPServer.SimpleHTTPRequestHandler but can also run CGI scripts.

只要Python脚本具有.py.pyw扩展名,并且是可执行的,那么它将运行Python脚本;映射到文件的其他路径将被视为常规文件并提供其内容。在

您可能还对^{}^{}模块感兴趣,以帮助简化CGI脚本开发。在

相关问题 更多 >