命令窗口出现并在运行cgi脚本后消失

时间:2015-05-08 15:54:48

标签: python-3.x

我是python cgi脚本的新手,我正在尝试学习如何设置服务器并运行cgi脚本。我跟着一个简单的例子,得到了这种奇怪的情况。这是在Windows 8上设置服务器的代码

import os, sys
from http.server import HTTPServer, CGIHTTPRequestHandler

webdir='c:/python34/webdir'
port=2000

os.chdir(webdir)
srvraddr=("",port)
srvrobj=HTTPServer(srvraddr, CGIHTTPRequestHandler)
srvrobj.serve_forever()

,html文件是

<html>
<title>Interactive Page</title>
<body>
<form method=POST action="cgi-bin/cgi101.py">
<P><B>Enter your name:</B>
<P><input type=text name=user>
<P><input type=submit>
</form>
</body></html>

处理此问题的python cgi代码是:

import cgi
form=cgi.FieldStorage()
print('Content-type:text/html\n')
print('<title>Reply Page</title>')
if not 'user' in form:
    print('<h1>who are you?</h1>')
else:
    print('<h1>hello <i>%s</i>!</h1>'%cgi.escape(form['user'].value))

我让服务器运行,并且python cgi代码运行完美。但每次命令提示符窗口出现并在浏览器显示cgi代码的结果之前消失。我不认为这是正常的,但不知道导致命令提示窗口出现和消失的问题是什么。任何帮助,将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

python.exe解释器正在执行此操作。如果没有命令窗口,任何尝试在普通脚本中使用 var pinView: CustomAnnotationView = CustomAnnotationView() pinView.annotation = annotation pinView.canShowCallout = true return pinView 等都会导致异常,因为stdout没有连接到任何东西。解决方法是让您的脚本使用pythonw.exe解释器,而不是将其扩展名更改为.pyw而不是.py。