3

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

2 回答 2

2

当你实现这样一个 httpserver 并浏览它时,就会调用的do_GET方法。SimpleHTTPRequestHandler默认情况下,它会在你的脚本所在的目录中搜索index.htmlor index.htm。如果没有这样的文件,将显示该目录。

因此,如果您想显示内容而不是目录。您应该添加一个文件index.htmlindex.htm在您的目录中。并在文件中写入要显示的内容。

有关更多信息,请参阅文档

于 2013-07-26T00:49:04.837 回答
0

您正在使用SimpleHTTPServer,虽然它很棒,但您必须使用它CGI进行交互。这个答案不能回答你的确切问题,但我相信它会让你轻松地做同样的事情。

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

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

我意识到这本身并不能回答您的问题。但是,它会让你得到同样的东西,并且会给你一个可以帮助你使用流行框架的基础。

于 2013-07-26T01:56:55.577 回答