from twisted.web import http class MyRequestHandler(http.Request): '''http.Request子类,重载了process方法''' pages = { '/': '<h1>Home</h1>Home Page', '/test': '<h1>Test</h1>Test Page', } # 此字典存放不同请求下的响应体内容 def process(self): # print(self.path) # 可以打印尝试并和浏览器发送的地址做对比, self.path是bytes型哦,注意有些地方解码哦 if self.path.decode() in self.pages: # 判断请求路径并发送相应的信息 self.write(self.pages[self.path.decode()].encode()) else: # 不存在的返回404并输出不存在信息 self.setResponseCode(http.NOT_FOUND) # 设置响应状态码 self.write('<h1>Not Found</h1>Sorry, no such page.'.encode()) self.finish() # 告知响应已完成 class MyHttp(http.HTTPChannel): '''继承http.HTTPCHannel类,这是一个Protocol,即用来处理每个成功的连接''' requestFactory = MyRequestHandler class MyHttpFactory(http.HTTPFactory): '''继承http.HTTPFcatory类,这是一个ServerFactory,即用来管理http服务器连接''' protocol = MyHttp if __name__ == '__main__': from twisted.internet import reactor reactor.listenTCP(8000, MyHttpFactory()) reactor.run()