Python 如何使用wsgiref.simple\u服务器覆盖服务器版本字符串?

Python 如何使用wsgiref.simple\u服务器覆盖服务器版本字符串?,python,wsgiref,Python,Wsgiref,在OSX(darwin)上使用Python2.7.2,我想隐藏或自定义wsgiref.simple_Server.make_Server()发送的“服务器”响应头 我尝试了很多东西,但都没有成功,我非常确定这个示例代码应该可以工作: from wsgiref import simple_server class MyWSGIRequestHandler(simple_server.WSGIRequestHandler): server_version = "X/1" sys_

在OSX(darwin)上使用Python2.7.2,我想隐藏或自定义wsgiref.simple_Server.make_Server()发送的“服务器”响应头

我尝试了很多东西,但都没有成功,我非常确定这个示例代码应该可以工作:

from wsgiref import simple_server

class MyWSGIRequestHandler(simple_server.WSGIRequestHandler):

    server_version = "X/1"
    sys_version = "Y/2"

httpd = simple_server.make_server('', 8082, simple_server.demo_app, handler_class=MyWSGIRequestHandler)

print "version_string: %s %s" % (httpd.RequestHandlerClass.server_version, httpd.RequestHandlerClass.sys_version)
# it prints "X/1 Y/2" 
httpd.serve_forever()
但它总是一样的,并且无法摆脱服务器发送的“服务器:WSGIServer/0.1 Python/2.7.2”。我还尝试在我的类中重写version_string方法,例如使用以下类似的方法:

class MyWSGIRequestHandler(simple_server.WSGIRequestHandler):
    def version_string(self):
        return "42"
这没什么变化,我真的不明白这里发生了什么


有人能帮我吗?

我终于找到了解决方案,不需要重写WSGIRequestHandler

from wsgiref.simple_server import ServerHandler
ServerHandler.server_software = "Fake Server Name Here"

然后您可以调用make_server()。

我终于找到了解决方案,无需重写WSGIRequestHandler

from wsgiref.simple_server import ServerHandler
ServerHandler.server_software = "Fake Server Name Here"

然后您可以调用make_server()。

谢谢,如果您像,
python manage.py runserver
那样运行,您应该在第行
execute\u from_command\u line(sys.argv)
之前追加manage.py文件。谢谢,如果您像,
python manage.py runserver
那样运行,您应该在命令行(sys.argv)execute\u之前追加manage.py文件