2013-05-04 85 views
0

我想从我的lighttpd服务器运行一个简单的Python脚本。 HTML代码是:从lighttpd运行python脚本 - Firefox要求保存文件

<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询问“你已经选择从本地主机打开cgi101.py”并询问Firefox应该如何处理这个文件以及我是否想保存它。它不应该只是在Firefox中打开并运行Python脚本,而不是要求我保存Python脚本吗?

回答

0

昨天我刚刚学习编程Python书时遇到了同样的问题。我发现答案之后是你失去了一个重要的一步。那是你失去了一个webserver.py文件,它实现了一个HTTP Web服务器在Python中知道如何运行用Python编码的服务器端CGI脚本;提供当前工作目录中的文件和脚本。以下是代码:

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

webdir = '.' 
port = 80 

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

您可以再试一次!

0

找到解决方案 添加chmod + x文件名使其可执行。