如何在SimpleHTTPServer中编写消息

时间:2013-07-26 00:21:27

标签: python webserver simplehttpserver

我对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()

2 个答案:

答案 0 :(得分:2)

当您实现此类httpserver并对其进行浏览时,将调用do_GET的{​​{1}}方法。默认情况下,它会搜索您的脚本所在的目录SimpleHTTPRequestHandlerindex.html。如果没有这样的文件,将显示该目录。

因此,如果要显示内容而不是目录。您应该在目录中添加文件index.htmindex.html。并将要显示的内容写入文件中。

有关详情,请参阅doc

答案 1 :(得分:0)

您使用的是SimpleHTTPServer,虽然很棒,但您必须使用CGI进行互动。这个答案没有回答你的确切问题,但我相信它可以让你轻松地做同样的事情。

在Python中,我们使用WSGI服务器与网站进行交互。我们这样做的原因是因为WSGI可以扩展并且可以处理比CGI或公共网关接口更多的操作。你可以看看@ WSGI,here

Armin Ronacher写了这篇文章,他是两个流行的Python框架的作者,Flask和Werkzueg。如果您打算继续学习Python Web开发,您很快就会遇到这些框架。

我意识到这不能回答你的问题本身。但是,它将允许您获得相同的东西,并将为您提供可以帮助您使用流行框架的基础。