2011-04-12 58 views
1
#! /usr/bin/env python 

import htmlSplitter, htmlGlue 

headerContent, mainContent, sideSetup, sideContent, footerContent = htmlSplitter.split("../htdocs/bcc/register.html") 


mainContent = "<h1>This is another Test</h1>" 
sideContent = "<h2>Jonathan's here!</h2>" 


htmlDoc = htmlGlue.glue(headerContent, mainContent, sideSetup, sideContent, footerContent) 

f = open("../bcc/doctest.html", "w") 
f.write(htmlDoc) 
f.close() 

print("Location:../bcc/doctest.html") 
print 

当我从命令行运行它时,此脚本完美起作用。但是,当我将它作为CGI脚本运行时,它给了我一个“脚本头过早结束”的错误。我已经调试,如果我注释掉打开,并将“doctest.html”的片段是罚款(所以我知道,我已经包含了其他两种模块不会造成问题的原因)。任何想法为什么这部分代码不能用作CGI脚本?有什么我应该替代吗?f = open()/在命令行中工作,但不作为CGI脚本[python]

注意:我已经做在chmod A +上“doctest.html” RW确保脚本有权限进行修改。

谢谢!

+1

什么错误日志说? – 2011-04-12 14:45:21

+0

你可以用'cgitb'找出到底是怎么回事。 'import cgitb;如果DEBUG:cgitb.enable()' – khachik 2011-04-12 14:47:20

+0

得到它。这是一个很有用的工具,我相信我应该知道的。谢谢! – 2011-04-12 14:57:04

回答

0

以下内容添加到你的脚本的开头:

#!/usr/bin/env python 
print 'Content-Type: text/html' 
print 

我一直在我的python cgi脚本中声明Content-Type,它很有礼貌。

import cgi 
import cgitb 
cgitb.enable() # allows error tracebacks 

cgitb会告诉你一个很好的基于Web的追溯,一旦发生问题与你的脚本,如引发的任何异常。

+0

cgitb帮助;我有一个关系链接错误。奇怪的是,open()文件名与重定向(Location :)文件名不同,我觉得这很奇怪。我感谢帮助! – 2011-04-12 22:06:55

0

也许只是复制/粘贴错误,但你的家当似乎缩进。取消缩进它,并尝试开始通过服务器上的命令行脚本,使用./yourscript(不python yourscript,因为这是它如何可能得到由Web服务器执行)

+0

这只是一个复制粘贴错误。但很好,赶上!谢谢。 – 2011-04-12 22:06:07

相关问题