cherrypy.tree.mount与mod_wsgi
我之前用的是cherrypy配合mod_python,构建了我的控制器树,使用的是cherrypy.tree.mount
这个方法,而且这些调用分散在代码中。现在我需要使用mod_wsgi。举个例子,可以参考一下这个链接:来自cherrypy的wiki
import sys
sys.stdout = sys.stderr
import atexit
import threading
import cherrypy
cherrypy.config.update({'environment': 'embedded'})
if cherrypy.__version__.startswith('3.0') and cherrypy.engine.state == 0:
cherrypy.engine.start(blocking=False)
atexit.register(cherrypy.engine.stop)
class Root(object):
def index(self):
return 'Hello World!'
index.exposed = True
application = cherrypy.Application(Root(), script_name=None, config=None)
我的问题是,每次调用cherrypy.tree.mount
都会创建一个cherrypy.Application
对象。而mod_wsgi只想要一个名为'application'
的对象。
我知道可以用类变量来构建cherrypy树,但我不想那样做。
有没有办法使用cherrypy.tree.mount
同时得到一个应用对象呢?
还有cherrypy.tree.graft
这个方法,但我觉得它是用来做其他事情的。
1 个回答
9
终于!我自己搞定了——从手册上找到的...
cherrypy.tree
本身就是一个 WSGI 对象,所以你只需要这样做:
cherrypy.tree.mount(...)
cherrypy.tree.mount(...)
cherrypy.tree.mount(...)
application = cherrypy.tree