从lighttpd运行python脚本 - Firefox要求保存文件

时间:2013-05-04 02:10:27

标签: python cgi lighttpd

我正在尝试从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脚本吗?

2 个答案:

答案 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()`

你可以再试一次!