我对Python比较陌生。我试图使用python运行一个简单的服务器。我成功地做到了这一点,但是当我从浏览器运行服务器时,我希望有一条消息,例如“Hello World”。 它在我运行程序时发布我的目录,并在顶部显示“/的目录列表”。有没有办法在这个页面上添加更多文字? 我该怎么做?
import sys
import BaseHTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
HandlerClass = SimpleHTTPRequestHandler
ServerClass = BaseHTTPServer.HTTPServer
Protocol = "HTTP/1.0"
if sys.argv[1:]:
port = int(sys.argv[1])
else:
port = 8000
server_address = ('127.0.0.1', port)
HandlerClass.protocol_version = Protocol
httpd = ServerClass(server_address, HandlerClass)
sa = httpd.socket.getsockname()
print "Serving HTTP on", sa[0], "port", sa[1], "..."
httpd.serve_forever()
答案 0 :(得分:2)
当您实现此类httpserver并对其进行浏览时,将调用do_GET
的{{1}}方法。默认情况下,它会搜索您的脚本所在的目录SimpleHTTPRequestHandler
或index.html
。如果没有这样的文件,将显示该目录。
因此,如果要显示内容而不是目录。您应该在目录中添加文件index.htm
或index.html
。并将要显示的内容写入文件中。
有关详情,请参阅doc。
答案 1 :(得分:0)
您使用的是SimpleHTTPServer
,虽然很棒,但您必须使用CGI
进行互动。这个答案没有回答你的确切问题,但我相信它可以让你轻松地做同样的事情。
在Python中,我们使用WSGI服务器与网站进行交互。我们这样做的原因是因为WSGI
可以扩展并且可以处理比CGI
或公共网关接口更多的操作。你可以看看@ WSGI,here。
Armin Ronacher写了这篇文章,他是两个流行的Python框架的作者,Flask和Werkzueg。如果您打算继续学习Python Web开发,您很快就会遇到这些框架。
我意识到这不能回答你的问题本身。但是,它将允许您获得相同的东西,并将为您提供可以帮助您使用流行框架的基础。