首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python SimpleHTTPServer 404页

Python SimpleHTTPServer 404页
EN

Stack Overflow用户
提问于 2014-03-18 08:06:30
回答 1查看 6K关注 0票数 6

我最近一直在使用Python的SimpleHTTPServer在我的网络上托管文件。我想要一个自定义的404页,所以我研究了一下,得到了一些答案,但我仍然想使用我拥有的这个脚本。那么,我必须添加什么才能将404页面添加到此脚本中呢?

代码语言:javascript
复制
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 = 80
server_address = ('192.168.1.100', port)

HandlerClass.protocol_version = Protocol
httpd = ServerClass(server_address, HandlerClass)

sa = httpd.socket.getsockname()
print "Being served on", sa[0], "port", sa[1], "..."
httpd.serve_forever()
EN

回答 1

Stack Overflow用户

发布于 2019-11-20 20:56:38

您可以实现自己的请求处理程序类,并覆盖send_error方法以仅在代码为404时更改error_message_format

代码语言:javascript
复制
import os
from BaseHTTPServer import HTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler

class MyHandler(SimpleHTTPRequestHandler):
    def send_error(self, code, message=None):
        if code == 404:
            self.error_message_format = "Does not compute!"
        SimpleHTTPRequestHandler.send_error(self, code, message)


if __name__ == '__main__':
    httpd = HTTPServer(('', 8000), MyHandler)
    print("Serving app on port 8000 ...")
    httpd.serve_forever()

默认error_message_format为:

代码语言:javascript
复制
# Default error message template
DEFAULT_ERROR_MESSAGE = """\
<head>
<title>Error response</title>
</head>
<body>
<h1>Error response</h1>
<p>Error code %(code)d.
<p>Message: %(message)s.
<p>Error code explanation: %(code)s = %(explain)s.
</body>
"""
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22467908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档