Исследование объекта Deferred с помощью CherryPy

Давайте для начала подготовим простую процедуру на стороне сервера, которая выполняет короткую задержку, а затем возвращает некоторое содержимое. (Пауза – это лишь способ подчеркнуть асинхронность поведения.) Ниже следует полное содержимое файла, использующего модуль CherryPy и реализующего упомянутую функциональность:
import cherrypy
from time import sleep
import os
# программный код, выполняющий запросы XHR, будет находиться
# в файле foo.html, и это видно в следующей директиве config
current_dir = os.getcwd()
config = {'/foo.html' :
{
'tools.staticfile.on' : True,
'tools.staticfile.filename' : os.path.join(current_dir, 'foo.html')
}
}
class Content:
# именно этот класс возвращает содержимое по запросу
@cherrypy.expose
def index(self):
sleep(3) # выдержать паузу в 3 сек. перед ответом
return "Hello"
# запустить вебсервер, который будет прослушивать порт 8080
cherrypy.quickstart(Content(), '/', config=config)

Предположим, что предыдущий программный код, использующий CherryPy, сохранен в файле с именем hello.py. Тогда, чтобы запустить сервер, достаточно в окне терминала выполнить команду python.hello.py. Чтобы убедиться, что сервер запущен, можно просто в броузере перейти по адресу http://127.0.0.1:8080/, после чего с короткой задержкой на экране должна появиться надпись «Hello».

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Dojo на эту тему:
DeferredList
JSON
OpenAjax Hub
Внедрение объектов Deferred в функции XHR
Вызов удаленных процедур