18.2.9 调试CGI脚本
首先,检查微不足道的安装错误—认真地阅读前面的安装你的脚本部分可以节约你许多时间。如果你怀疑是否已经正确地明白该安装过程,尝试作为一个CGI脚本安装这个模块文件(cgi.py)的一个副本。当作为一个脚本调用时,该文件将以HTML格式释放它的环境和表单内容。给予正确的模式等,并且发送给它一个请求。如果它被安装在标准的cgi-bin文件夹中,它应该可能发送给它一个请求,通过输入一个URL到你的浏览器区域:http://yourhostname/cgi-bin/cgi.py?name=Joe+Blow&addr=At+Home
如果获得一个错误类型404,服务器不能找到该脚本-可能你需要安装它用一个不同的文件夹。如果它获取另外的错误,这是一个安装问题,尝试前进之前你应该修正这个问题。如果你获得了一个令人满意的格式化的环境和表单内容的列表(这个例子中,字段被列出作为”addr”用值”At Home”和”name”用值”Joe Blow”),cgi.py脚本已经被正确地安装。如果对于你自己的脚本你遵照同样的程序,现在,你应该可以调试它。
下一步可以从你的脚本中调用cgi模块的test()函数:用单一的语句替换它的主代码
cgi.test()
这应该产生和从安装的cgi.py文件自身获取的相同的结果。
当普通的Python脚本挂起一个未处理过的异常时(无论怎样的原因:模块名称中的一个错字,不能被打开的文件,等),Python解释打印出一个令人满意的反馈。虽然Python解释器仍然工作,当你的CGI脚本挂起一个异常时,很可能反馈将结束其中一个HTTP服务器的日志文件中,或被完全舍弃。
不幸地,一旦你设法让你的脚本执行一些代码,你可以使用cgitb模块很容易地发送反馈到Web浏览器。如果你没有这样做的话,仅加入这样一行:
import cgitb; cgitb.enable()
到你的脚本的顶部。那么再次尝试运行它;当问题发生时,你应该看到一个详细的报告,可能明显的崩溃原因。
如果你们不信任,用导入cgitb模块有一个问题,你可以用一个更健壮的方法(仅用内置模块):
import sys
sys.stderr = sys.stdout
print "Content-Type: text/plain"
...your code here...
这依赖于Python解释器打印的反馈。输出的内容类型被设置为简单的文本,停止的所有的HTML处理。如果你的脚本工作,未处理的HTML将不被你的客户端显示。如果它挂起一个异常,多半首先两行被打印出后,反馈将不被显示。因为没有HTML解释继续下去,反馈将是可读的。
出处[url=http://www.okpython.com]PYTHON中国[/url],更多文档在[url=http://www.zkfarmer.org]我的站点[/url],关于翻译的任何事情请EMAIL给我[email=zkfarmer@gmail.com]zkfarmer[/email],[color=SeaGreen]请参阅官方英文文档[/color]。
页:
[1]