我正在试图找出如何配置工具,以便在使用外部配置文件在cherrypy中收到请求时运行。我已经阅读了文档中的示例,但这些都将配置嵌入到源文件中,而不是单独的配置文件中。我已经读过可以在外部配置工具,但我没有找到任何示例。
以wiki为例,我希望能够像这样逻辑地做一些事情:
tools.print_path = cherrypy.Tool('on_start_resource', {what goes here?})
假设我的PYTHONPATH中有一个名为'mytools.py'的文件,我可以使用'import mytools'导入,在这个文件中我有一个简单的“def print_path(multiplier = 1)”方法。我在“{what goes here?}”点上放了什么?我在mytools.print_path上尝试了各种变体,我得到的最好的是:
CherryPy Checker: The config entry 'tools.print_path' may be invalid, because the 'print_path' tool was not found. section: [/]
如果有人能指出我正确的方向,我会非常感激。
答案 0 :(得分:0)
配置文件中没有用于实例化工具的工具(cherrypy.Tool(...)
部分)。你需要在代码中这样做。您的“mytools.py”文件应如下所示:
def print_path(multiplier=1):
...
cherrypy.tools.print_path = cherrypy.Tool('on_start_resource', print_path)
...然后您的配置文件用于打开给定URL(及其子项)的工具:
[/]
tools.print_path.on: True
tools.print_path.multiplier: 23
在启动脚本中处理配置文件之前,请确保“导入mytools”。