我过去常常使用带有mod_python的cherrypy,我使用cherrypy.tree.mount
调用构建了我的控制器树,我想保留它们(它们通过代码传播)。
现在我必须使用mod_wsgi。示例:from 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.tree.mount
并获取一个应用程序对象?
还有cherrypy.tree.graft,但我认为这意味着不同的目的。
答案 0 :(得分:9)
最后!得到它自己 - 从手册......
cherrypy.tree
本身就是一个WSGI对象,所以你只需执行:
cherrypy.tree.mount(...)
cherrypy.tree.mount(...)
cherrypy.tree.mount(...)
application = cherrypy.tree