为Python脚本提供服务的Web服务器

为Python脚本提供服务的Web服务器,python,apache,mod-wsgi,Python,Apache,Mod Wsgi,我有一个Python脚本,我想从浏览器上运行,看起来mod_wsgi是一个不错的选择,但是这个方法感觉太重了,需要修改脚本才能输出。我想我最喜欢php方法。脚本不接受任何输入,只能在内部网络上访问 我在Linux上运行apache,已经设置了mod_wsgi,这里有哪些选项?您可以使用python的任何微框架从服务器上快速运行脚本。大多数都包括自己的轻量级服务器 从主页文档 import cherrypy class HelloWorld(object): def index(self)

我有一个Python脚本,我想从浏览器上运行,看起来mod_wsgi是一个不错的选择,但是这个方法感觉太重了,需要修改脚本才能输出。我想我最喜欢php方法。脚本不接受任何输入,只能在内部网络上访问


我在Linux上运行apache,已经设置了mod_wsgi,这里有哪些选项?

您可以使用python的任何微框架从服务器上快速运行脚本。大多数都包括自己的轻量级服务器

从主页文档

import cherrypy
class HelloWorld(object):
    def index(self):
        # run your script here
        return "Hello World!"
    index.exposed = True

cherrypy.quickstart(HelloWorld())
此外,python还提供了在其标准库中执行所需操作所需的工具 使用

基本服务器使用:


microframeworks的优点在于,它们可以抽象出写头之类的内容,但仍然应该为您提供一个接口,如果需要,您可以使用任何python的microframeworks从服务器上快速运行脚本。大多数都包括自己的轻量级服务器

从主页文档

import cherrypy
class HelloWorld(object):
    def index(self):
        # run your script here
        return "Hello World!"
    index.exposed = True

cherrypy.quickstart(HelloWorld())
此外,python还提供了在其标准库中执行所需操作所需的工具 使用

基本服务器使用:


微框架的好处在于,它们可以将标题等内容抽象出来,但仍应为您提供一个接口,如果需要,我会采用微框架方法,以防您的需求发生变化-您永远不知道,它可能最终成为一个应用程序,而不仅仅是一个基本转储。。。也许是最简单和老式的方法!?正在使用CGI:

复制脚本,并在任何其他输出到sys.stdout之前包含“内容类型:text/plain\n” 将该脚本放在apache2可以访问它的地方,例如您的cgi bin 确保脚本是可执行的 确保将.py添加到Apache CGI处理程序中
但是-我不认为从长远来看,这将是一个非常好的优势至少

我会采用微框架方法,以防您的需求发生变化-而且您永远不知道,它可能最终成为一个应用程序,而不仅仅是一个基本转储。。。也许是最简单和老式的方法!?正在使用CGI:

复制脚本,并在任何其他输出到sys.stdout之前包含“内容类型:text/plain\n” 将该脚本放在apache2可以访问它的地方,例如您的cgi bin 确保脚本是可执行的 确保将.py添加到Apache CGI处理程序中
但是——我不认为从长远来看,这将是一个了不起的优势,至少

产出是多少;你可以使用模板生成HTML结构并填充元素吗?我应该更清楚,它只是纯文本,脚本只是将内容打印到标准输出。我只是通过浏览器快速简单地显示输出;你能用模板生成HTML结构并填充元素吗?我应该更清楚它只是纯文本,脚本只是将内容打印到标准输出。我只是一种通过浏览器快速而简单地显示输出的方法。它确实需要是一个短期转储,所以这很完美。@sudo\O我应该注意,它没有经过测试。。。但从理论上讲,应该可以工作,或者至少足以让您从调用['/bin/svn'、'update'、'/path/to/repo']中找到工作的configs/examplespart。您知道为什么不执行该命令吗?@sudo_O这是一个棘手的问题。调试是一件痛苦的事情,可能是因为apache是解释器的所有者,并且该用户/组没有访问repo的权限。。。。像这样简单的解决方法调试起来有点困难,但是有一个cgitb模块可能对处理回溯很有用,但可能从指针调用的响应和返回代码开始。你是对的,apache用户没有repo的权限,我没有看到任何输出,因为我的脚本没有处理子流程的输出。不管怎样,现在一切都好了,谢谢你的帮助!它确实需要是一个短期转储,所以这是完美的。@sudo_O我应该注意到它还没有经过测试。。。但从理论上讲,应该可以工作,或者至少足以让您从调用['/bin/svn'、'update'、'/path/to/repo']中找到工作的configs/examplespart。您知道为什么不执行该命令吗?@sudo_O这是一个棘手的问题。调试是一件痛苦的事情,可能是因为apache是解释器的所有者,并且该用户/组没有访问repo的权限。。。。像这样简单的解决方法调试起来有点困难,但是有一个cgitb模块可能对处理回溯很有用,但可能从指针调用的响应和返回代码开始。你是对的,apache用户没有repo的权限,我没有看到任何输出,因为我的脚本没有处理子流程的输出。不管怎样,现在一切都好了,谢谢你的帮助!