在cherrypy中使用外部文件配置工具
我正在尝试配置一个工具,让它在cherrypy接收到请求时运行,并且希望使用一个外部的配置文件。我看过文档里的例子,但那些例子都是把配置直接写在源代码里,而不是放在一个单独的配置文件中。我听说工具可以外部配置,但我没有找到相关的例子。
参考一下wiki上的例子,我想做的逻辑大概是这样的:
tools.print_path = cherrypy.Tool('on_start_resource', {what goes here?})
假设我有一个名为'mytools.py'的文件在我的PYTHONPATH里,我可以用'import mytools'来导入它。在这个文件里,我有一个简单的"def print_path(multiplier=1)"方法。那么我应该在"{这里放什么?}"的位置填什么呢?我试过用mytools.print_path的不同写法,但得到的结果最好也就是这样:
CherryPy Checker: The config entry 'tools.print_path' may be invalid, because the 'print_path' tool was not found. section: [/]
如果有人能给我指个方向,我会非常感激。
1 个回答
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
只要确保在你的启动脚本中,在处理配置文件之前先 'import mytools' 就可以了。