Python CGI在Mac OSX 10.6.7上无法执行
最近我开始读马克·卢茨的《Python编程(第四版)》。我是个Mac用户,使用ActivePython和OSX 10.6.7。总的来说,一切都很顺利,直到书中第一次提到CGI的时候。代码示例创建了一个表单,并使用POST方法来查找某个人的名字:
<html>
<title>Interactive Page</title>
<body>
<form method=POST action="cgi-bin/testing.cgi">
<p><b>Enter your name:</b>
<p><input type="text" name="user">
<p><input type="submit">
</form>
</body>
</html>
然后,CGI脚本被放在一个子目录里,如HTML中所示,样子是这样的:
#!/usr/bin/python
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))
但是当我加载HTML并进行测试时,脚本并没有执行。发生的情况是,浏览器要么把整个脚本当作超文本加载,要么下载一个.py文件;这取决于我使用的浏览器(Eclipse和Safari显示文本,而Chrome和Firefox则下载文件)。如果这有什么意义的话,当我打开.html文件时,它是通过file://而不是http://打开的。
我不确定这是不是我的脚本的问题,或者是其他各种原因。如果有人对在Mac上执行基于Python的CGI有任何建议,那就太好了。
1 个回答
2
你需要先设置并运行一个网络服务器,然后通过这个网络服务器用一个网址来访问文件,比如 http://localhost:8080/cgi/foo.py,而不是直接用文件的本地路径。