пример веб-приложения, управляемого событиями на Python, увеличивает количество запросов на 2, почему?

Пример кода для базового веб-сервера, предоставленный http://twistedmatrix.com/trac/ , кажется, увеличивает счетчик запросов на два для каждого запроса, а не на 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

Итак, судя по счетчику , сервер появляется s для вызова функции render_GET дважды для каждого запроса. Я запускаю это в Windows 7 с использованием Python 2.7. Есть идеи, что может происходить, или это ожидаемое поведение?

Обновление: код работает отлично, обманывает браузер. При каждом обновлении страницы браузер отправляет запрос GET для «/» и «/favicon.ico», который учитывает увеличение на 2, потому что функция render_GET фактически вызывается дважды при обновлении страницы.

6
задан jpreed00 13 February 2012 в 00:15
поделиться