Как назначить приложение wsgi в корень cherrypy через файл конфигурации? - PullRequest
3 голосов
/ 28 февраля 2010

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

Вот вызов:

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'

1 Ответ

3 голосов
/ 28 февраля 2010

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

...