我是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代码的结果之前消失。我不认为这是正常的,但不知道导致命令提示窗口出现和消失的问题是什么。任何帮助,将不胜感激。感谢。
答案 0 :(得分:0)
python.exe解释器正在执行此操作。如果没有命令窗口,任何尝试在普通脚本中使用 var pinView: CustomAnnotationView = CustomAnnotationView()
pinView.annotation = annotation
pinView.canShowCallout = true
return pinView
等都会导致异常,因为stdout没有连接到任何东西。解决方法是让您的脚本使用pythonw.exe解释器,而不是将其扩展名更改为.pyw而不是.py。