您的位置:

Python CGI程序:动态生成网页内容

一、CGI是什么

CGI的全称是Common Gateway Interface,也就是通用网关接口。它是连接Web服务器和CGI脚本(或程序)的接口标准。通过CGI,Web服务器可以将请求连接到后台程序,并且将程序的输出返回到客户端浏览器,实现了Dynamically Generating Web Pages的效果。目前,CGI已经被一些新的更优秀的解决方案所替代,但是CGI仍然是编写交互式Web应用程序的基础技术。

二、CGI的原理

每个Web服务器都会规定一个目录来存放CGI程序,通常是cgi-bin目录。当Web服务器接收到一个CGI请求后,它会将所有的CGI环境变量和CGI请求数据转换成标准输入流,然后启动CGI程序,并将标准输出流传送给客户端浏览器。 CGI请求的数据可以来自GET或POST方法,还可以使用多种编码格式。每个CGI程序都会从服务器接收全部请求数据,解析处理并返回HTML文档。

三、Python中的CGI

Python的CGI编程可以用来开发动态的web页面,它具有跨平台特性,可以在多个平台上运行。Python的CGI程序可以通过以下几个步骤实现:

1. 在Web服务器上创建一个新目录,可以访问CGI程序,通常是cgi-bin目录。

2. 创建一个Python脚本,在脚本中写入CGI程序的代码。同时,设置脚本的执行权限(Unix/Linux)。

3. 编写HTML页面,将其中的表单数据或URL附加数据传递给脚本。

4. 在HTML页面中使用CGI脚本,指定脚本的名称和位置。CGI程序的位置可以使用相对路径或绝对路径。

下面是一个简单的Python CGI程序实例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

# cgi导入必要的模块
import cgi, cgitb

# 创建FieldStorage的实例
form = cgi.FieldStorage()

# 获取提交的表单数据
if form.getvalue('name'):
   name = form.getvalue('name')
else:
   name = "没有提交数据"

# 设置返回的文档类型
print "Content-type:text/html"
print
print ""
print ""
print "Python CGI程序实例"
print ""
print ""
print "

Hello %s

" % name print "" print "