试图切换到Python,遇到问题

时间:2012-05-10 02:00:51

标签: python cgi

我是一名PHP程序员,但我想学习Python。我对如何实际执行脚本有点困惑。我在我的Web服务器根目录中创建了test.py,在我写的文件中:

#!/usr/bin/python
import jon.cgi as cgi
import jon.fcgi as fcgi

print "Content-type: text/html"
print "hello world"

我的服务器正在运行Litespeed,遵循以下教程:http://www.litespeedtech.com/support/wiki/doku.php?id=litespeed_wiki:python_fcgi我安装了Jon的CGI。

但是当我在浏览器中导航到脚本时,它只打印完整的代码,就好像它没有解析它一样。非常感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:4)

我认为使用mod_wsgi在Apache下使用WSGI可能最容易。

一个简单的WSGI应用程序如下所示:

def application(environ, start_response):
    status = '200 OK'
    output = 'Hello World!'

    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]

其他Python框架构建于WSGI之上。快速入门installationconfiguration指南值得一读。软件包可用于常见的Linux发行版。

如果您对替代方案感兴趣,可能需要查看Tornado这是一个基于事件的服务器,它具有不同的设计。

正如@cacahootie在下面提到的,你还应该研究Python的Web应用程序框架。这使得编写利用WSGI的应用程序变得更加容易。 Django可能是最受欢迎的,但Python中有许多other options。我个人对一个非常轻的框架的偏好是Flask,但它没有Django那么全面。

答案 1 :(得分:0)

我不同意Brian的意见。为了在Web应用程序环境中学习Python,CherryPy是最简单的方法之一。它是一个WSGI框架,但是让事情变得如此简单我不知道你为什么要尝试直接实现WSGI应用程序。我知道CGI可能是一个更舒适的起点,但坦率地说,CherryPy(或其他一些更复杂的框架)使事情变得如此简单,而WSGI是部署这些应用程序的最佳方式。 WSGI与CGI相当 - 它是许多框架可能实现的接口。

CherryPy Project Site

Hello World(来自他们的主页):

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

cherrypy.quickstart(HelloWorld())