我之前了解到,在cherrypy中,必须公开一个方法才能使其成为视图目标,这一点也遍布整个文档:
import cherrypy
@cherrypy.expose
def index():
return "hello world"
但是我继承了一个cherrypy应用程序,它似乎没有暴露任何东西
这是怎么回事?是否从新版本中删除了公开要求?在
在谷歌上搜索这个并不容易,我在cherrypy上找到了很多关于暴露和装饰的信息,但没有关于“cherrypy without expose”的内容
这是主要的服务.py脚本,为了简洁起见,我从中删除了一些部分:
^{pr2}$而且应用程序中没有Expose。它怎么能起作用?在
文件根.py公司名称:
# -*- coding: utf-8 -*-
from mako.template import Template
class RouteRoot:
def index(self):
return "Hello world!"
这是因为应用程序不使用默认的调度程序。它被解释了(粗体!)在cherrypy的文件里
我读过这一页:http://docs.cherrypy.org/stable/concepts/dispatching.html
我不确定,但也许派遣代替了曝光的必要性。在
因为它依赖于routes dispatcher,后者的工作方式略有不同。主要地,它不需要
expose
修饰符设置的exposed
属性,因为url是显式描述的(正如您在connect(...)
方法中看到的那样)。另一方面,默认的CherryPy调度程序不提供url和对象之间的显式映射。当一个请求命中应用程序的引擎时,它必须经过您最初安装的应用程序的树。它使用exposed
属性来确定方法是否可以参与URL映射。这为开发人员提供了一个在控制器类中编写URL映射过程无法访问的方法的机会。在相关问题 更多 >
编程相关推荐