cherrypy.tree.mount和mod_wsgi

时间:2011-01-24 17:47:39

标签: python apache mod-wsgi cherrypy

我过去常常使用带有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,但我认为这意味着不同的目的。

1 个答案:

答案 0 :(得分:9)

最后!得到它自己 - 从手册......

cherrypy.tree本身就是一个WSGI对象,所以你只需执行:

cherrypy.tree.mount(...)
cherrypy.tree.mount(...)
cherrypy.tree.mount(...)
application = cherrypy.tree