25. Python脚本学习笔记二十五 CGI脚本

25. Python脚本学习笔记二十五 CGI脚本

本篇名言:“人海中再回首,朋友真诚依旧,生命里重逢,心境平和温柔,往事如风,岁月如歌,漫漫人生路,苍桑几许,幸福几何!”

上篇是讨论客户端技术,我们来看看服务端的技术。这次看下程序设计技术:CGI(common Gateway interface)

CGI是网络服务器可以将查询传递到专门的程序中并且在网页上显示结果的标准机制。

Python CGI程序的关键是CGI模块。

1.  搭建网络服务器

http://archive.apache.org/dist/httpd/binaries/ 网站下载httpd软件例如:

httpd-2.2.25-win32-x86-no_ssl.msi。

蛤蟆这里是以WINDOWS为例。

然后双击进行安装即可。

安装完毕后,会自动启动,没有启动就手动启动一下,

最后在IE中刚输入127.0.0.1, 显示如下:

 

2.  运行CGI

修改httpd.conf文件如下:

取消注释:   AddHandler cgi-script .cgi

将如下代码复制到文件simple.cgi(自己新建一个),

#!D:\python27\python.exe

 

print'Content-type: text/plain'

print # Prints anempty line, to end the headers

 

print 'Hello,world!'

 

然后放到Apache安装路径下的htdocs 文件夹中。

其中需要修改httpd.conf文件如下:

ScriptAlias /cgi-bin/ "D:/Apache SoftwareFoundation/Apache2.2/cgi-bin/"

<Directory "D:/Apache SoftwareFoundation/Apache2.2/cgi-bin">

    AllowOverride None

                  OptionsExecCGI

                  Orderallow,deny

    Allow from all                

</Directory>

AddHandler cgi-script .cgi

需要重启Apache服务生效。

然后在IE中输入如下:

http://127.0.0.1/cgi-bin/simple.cgi

 

得到如下输出:

 

这样就实现了一个CGI的运行。而且这个CGI是会用PYTHON实现的。

3.  使用cgitb调试

通过CGI回溯的模块,可以得到包含出错信息的十分有用的网页。使用如下代码,其中包含分母为0的错误用法,然后的可以得到一个调试结果网页。

 

#!D:\python27\python.exe

 

import cgitb; cgitb.enable()

 

print 'Content-type: text/html'

 

print

 

print 1/0

 

print 'Hello, world!'

输入如下

 

4.  使用表单

CGI脚本的输入一般都是从已提交的WEB表单中获取。也可以直接使用参数调用CGI程序。

输入如下代码如下:

#!D:\python27\python.exe

 

import cgi

form =cgi.FieldStorage()

 

name =form.getvalue('name', 'world')

 

print"""Content-type: text/html

 

<html>

  <head>

    <title>Greeting Page</title>

  </head>

  <body>

    <h1>Hello, %s!</h1>

 

 

    <form action='simple3.cgi'>

    Change name <input type='text'name='name' />

    <input type='submit' />

    </form>

  </body>

</html>

"""% name

在IE中输入地址http://127.0.0.1/cgi-bin/simple.cgi

登陆输出如下:

脚本先获取一个CGI参数name,默认是world. 然后打印一个HTML显示,如果有值就会改变标题的值,没有就是默认的world.然后提交表单,继续调用simple.cgi脚本。

 

 

 

 

 

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值