Как назначить приложение wsgi корневому каталогу cherrypy через файл конфигурации?

Как назначить приложение wsgi корневому каталогу cherrypy через файл конфигурации? Я хочу, чтобы запрос "http://localhost:8080/" направлялся на мой собственный wsgiapp. Я использую Cherry для запуска сервера Cherpy с файлом конфигурации следующим образом:

Вот призыв:

cherryd --config config.cfg --import myapp

Вот файл config.cfg:

[global]
server.socket_host: "127.0.0.1"
server.socket_port: 8080
tree.apps: { "/" : myapp.wsgiapp  }

Вот модуль myapp.py:

def wsgiapp(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/plain')])
    return ['Hello World']

Вот сообщение об ошибке:

  File "/Users/samwan/Documents/myproject/virtual_environment/lib/python2.5/site-packages/CherryPy-3.1.2-py2.5.egg/cherrypy/_cpconfig.py", line 331, in _tree_namespace_handler
    cherrypy.tree.graft(v, v.script_name)
AttributeError: 'dict' object has no attribute 'script_name'

person Samuel Wan    schedule 28.02.2010    source источник


Ответы (1)


Честно говоря, я думаю, что мы просто не рассмотрели этот вариант использования; он был разработан для передачи целых экземпляров приложений, а не словарей приложений WSGI. Вы должны иметь возможность заменить cherrypy.config.namespaces['tree'] обработчиком, который довольно легко принимает ваш dict, пока мы не исправим это. Сделайте мне билет, и я посмотрю, сможем ли мы попасть в финал 3.2.

person fumanchu    schedule 28.02.2010