我一直遇到一个奇怪的问题。当我快速启动应用程序时:
cherrypy.quickstart(WebApps(), '/dev/apps/', 'settings.config')
一切正常。但是,当我尝试通过apache mod_wsgi加载我的应用程序时,似乎选项文件中的所有默认选项都没有传递给我创建的工具。
我基本上有一个简单的工具:
@cherrypy.expose
@cherrypy.tools.checkStatus()
def doSomething(self,*args, **kwargs):
#process the page here
...
def checkStatus(**kwargs):
#handle stuff here
和一个非常简单的settings.config文件:
[global]
tools.checkStatus.redirect = 'http://localhost/dev/MyRedirectPage.html'
tools.checkStatus.returnAfterRedirect = True
如上所述,当我从快速入门函数运行时,checkstatus会传递一个参数字典,其中包含'redirect'和'returnAfterRedirect'。
每当从mod_wsgi启动应用程序时,代码都会运行,但不会将参数传递给kwargs。
def application(environ, start_response):
app = cherrypy.tree.mount(WebApps(),
'/dev/apps/',
os.path.join(currentPath,'settings.config'))
return app(environ, start_response)
我错过了一些明显的东西吗?为什么第一个版本工作而不是第二个?
由于
答案 0 :(得分:0)
我首先要确认os.path.join(currentPath,'settings.config')
是您认为的应该是......
但假设是,请尝试将配置条目从[global]
移至[/]
。 quickstart
会将相同的配置传递给cherrypy.config.update
(全局配置)和app.config
(特定于应用程序的配置),但tree.mount
仅执行后者。