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()
Run Code Online (Sandbox Code Playgroud)
查看代码,看起来您应该能够连接到URL http:// localhost:8080并查看:
I am request #1
Run Code Online (Sandbox Code Playgroud)
然后刷新页面并查看:
I am request #2
Run Code Online (Sandbox Code Playgroud)
但是,我看到:
I am request #3
Run Code Online (Sandbox Code Playgroud)
当我再次刷新时,我看到:
I am request #5
Run Code Online (Sandbox Code Playgroud)
因此,从计数器判断,服务器似乎为每个请求调用两次函数"render_GET".我使用Python 2.7在Windows 7上运行它.知道可能会发生什么或这是预期的行为吗?
更新:代码运行正常,这是一个棘手的浏览器.每次刷新页面时,浏览器都会发送一个"/"和"/favicon.ico"的GET请求,这会导致递增2,因为每次刷新时实际上都会调用render_GET函数两次.
| 归档时间: |
|
| 查看次数: |
710 次 |
| 最近记录: |