2017-06-04 138 views
1

我有,我想作为一个网站简单的Python脚本:获取Python脚本在HTTP简单的服务器运行

import SimpleHTTPServer 
import SocketServer 

PORT = 8000 

Handler = SimpleHTTPServer.SimpleHTTPRequestHandler 

httpd = SocketServer.TCPServer(("", PORT), Handler) 

print "serving at port", PORT 
httpd.serve_forever() 

我该文件夹中,然后运行

$ python3 -m http.server 

然后我访问 http://hassbian.local:8000/song.py

终端说这个,我得到的文件作为txt文件,脚本将不会执行。

Serving HTTP on 0.0.0.0 port 8000 ... 
192.168.1.115 - - [04/Jun/2017 14:19:59] "GET/HTTP/1.1" 200 - 
192.168.1.115 - - [04/Jun/2017 14:20:04] "GET /song.py HTTP/1.1" 200 - 

运行在树莓派

+2

你不能执行这样的脚本。 'python3 -m http.server'只会提供您运行它的目录中的文件。 – thefourtheye

+0

我应该用什么来代替? – Himmators

+0

它并不一定是python,任何简单的脚本语言都可以。 – Himmators

回答

1

SimpleHTTPServer没有做CGI。如果你想CGI,你将不得不使用CGIHTTPServer

这个模块可以在Unix和Windows系统上运行CGI脚本。

我不知道如果这是你真正想要的,但你已经证明的方式调用一个python脚本是CGI。 CGI是一种非常古老的做事方式。使用python运行简单的web应用程序现在几乎完全是webapp2或flask的域。虽然涉及数据库的更复杂的应用程序由django控制。

+0

很好的信息,CGI似乎很好,因为它已经在我的rasberry pi上运行了,我正在创建一个小型的web服务,将一个文件夹中的几个文件作为json对象提供,CGI就足够了吗? – Himmators

+0

那么,如果它只是json,SimpleHTTPServer就没问题。你的问题表明你试图运行一个python文件。 – e4c5

+0

嗯,它是一个动态创建的json文件,基于文件夹的内容。 – Himmators