我正在为一个赋值(Python 2.4)编写一个小CGI脚本,它接受表单数据,用它运行一个shell命令,然后根据它刚刚做了什么来显示它自己页面的一个或另一个版本。例如。如果您添加注释,它会重新加载页面的“项目”版本,而不是“所有项目列表”视图,并包含新注释。程序中有几个地方应该重新加载自己。它在一个地方工作,在一个地方它不起作用,我正在挫败我的大脑试图看到差异。
if mode == "change":
if newcomment != "":
comment_command = "some shell command \"" + item + "\" " + comment
os.system(comment_command)
if rating != "":
rate_command = "same command \"" + item + "\" " + rating
os.system(rate_command)
# this NEVER works!
print "%s%s" % ("Location:http://blahblah/cgi-bin/myproject.cgi?item=", urllib.quote_plus(item))
elif mode == "newitem":
add_command = "command \"" + newitem + "\""
result = os.system(add_command)
retcode = os.WEXITSTATUS(result)
# redirect depending on results
if retcode == 1:
# this one always works!
print "%s%s" % ("Location:http://blahblah/cgi-bin/myproject.cgi?item=", urllib.quote_plus(newitem))
else:
print("Location:http://blahblah/cgi-bin/myproject.cgi")
我希望这已经足够了。我不明白为什么它在一个地方而不是另一个地方工作。我认为除了?item= version
在一个地方工作之外,它忽略了重定向和“超越”重定向的尝试。有什么关于os.system的东西,我不明白吗?
答案 0 :(得分:0)
答案 1 :(得分:0)