一、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 "