示例python twisted事件驱动的Web应用程序递增请求数量为2,为什
发布时间:2020-12-16 23:42:17 所属栏目:Python 来源:网络整理
导读:由 http://twistedmatrix.com/trac/给出的基本Web服务器的示例代码似乎为每个请求将请求计数器递增2,而不是1. 代码: from twisted.web import server,resourcefrom twisted.internet import reactorclass HelloResource(resource.Resource): isLeaf = True
由
http://twistedmatrix.com/trac/给出的基本Web服务器的示例代码似乎为每个请求将请求计数器递增2,而不是1.
代码: from twisted.web import server,resource from twisted.internet import reactor class HelloResource(resource.Resource): isLeaf = True numberRequests = 0 def render_GET(self,request): self.numberRequests += 1 request.setHeader("content-type","text/plain") return "I am request #" + str(self.numberRequests) + "n" reactor.listenTCP(8080,server.Site(HelloResource())) reactor.run() 看一下代码,看起来你应该能够连接到url http://localhost:8080并看到: I am request #1 然后刷新页面并查看: I am request #2 但是,我看到: I am request #3 当我再次刷新时,我看到: I am request #5 因此,从计数器判断,服务器似乎为每个请求调用两次函数“render_GET”.我使用Python 2.7在Windows 7上运行它.知道可能会发生什么或这是预期的行为吗? 更新:代码运行正常,这是一个棘手的浏览器.每次刷新页面时,浏览器都会发送一个“/”和“/favicon.ico”的GET请求,这会导致递增2,因为每次刷新时实际上都会调用render_GET函数两次. 解决方法
浏览器可以以令人惊讶的方式表现.如果您尝试打印完整的请求,您可能会发现它正在请求“/”以及“favicon.ico”.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |