我正在尝试从lighttpd服务器运行一个简单的Python脚本。 HTML代码是:
<html>
<title>Interactive page</title>
<body>
<form method=POST action="cgi-bin/cgi101.py">
<P><B>Entery your name: </B>
<P><input type=text name=user>
<P><input type=submit>
</form>
</body>
</html>
我的Python脚本是:
#!/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(cgi.escape(form['user'].value))
所以我的问题是,我能够加载HTML页面然后点击提交查询吗? Firefox从localhost询问“你选择打开cgi101.py”,并询问Firefox应该对这个文件做什么,以及我是否要保存它。它不应该只在Firefox中打开并运行Python脚本而不是要求我保存Python脚本吗?
答案 0 :(得分:0)
找到解决方案 添加chmod + x文件名以使其可执行。
答案 1 :(得分:0)
昨天我在学习编程Python书时遇到了同样的问题。我找到了答案之后你失去了一个重要的一步。那就是你丢失了一个webserver.py文件来实现一个HTTP web服务器知道如何运行用Python编码的服务器端CGI脚本的Python;提供当前工作目录中的文件和脚本。这是代码:
`import os,sys
from http.server import HTTPServer,CGIHTTPRequestHandler
webdir = '.'
port = 80
os.chdir(webdir)
srvraddr = ("",port)
srvrobj = HTTPServer(srvraddr,CGIHTTPRequestHandler)
srvrobj.serve_forever()`
你可以再试一次!