【问题标题】:How to write a message in SimpleHTTPServer如何在 SimpleHTTPServer 中编写消息
【发布时间】:2013-07-26 02:35:20
【问题描述】:

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

【问题讨论】:

    标签: python webserver simplehttpserver


    【解决方案1】:

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

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

    更多信息请参考doc

    【讨论】:

    • 使用index.html 的问题在于它发送了text/html mime 类型。如果你真的想发短信,你需要使用text/plain
    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-12-12
      • 2020-05-24
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多