使用 HTTP 方法调度程序启动 CherryPy 应用程序

Starting CherryPy application with HTTP method dispatcher

我是 cherrypy 的新手,我正在尝试使用方法调度程序启动一个简单的应用程序。我一直在尝试使用此站点了解 cherrypy 配置:https://cherrypy.readthedocs.org/en/3.2.6/concepts/config.html,但我仍然不明白我做错了什么。当我启动应用程序并转到 127.0.0.1:8080 时,我收到错误消息:找不到路径“/”。这是我用来启动应用程序的 python 文件:

import cherrypy
import re
import json
import requests

class root(object):

    def GET(self):
        return "<html> <p> Hello </p> </html>"



if __name__ == '__main__':

    conf = {'server.socket_host': '127.0.0.1', 
            'server.socket_port': 8080}
    cherrypy.config.update(conf)

    cherrypy.tree.mount(root(), '/', {
        '/': {
            'request.dispatch': cherrypy.dispatch.MethodDispatcher(),
            'tools.trailing_slash.on': False,
        }
    })
    cherrypy.engine.start()
    cherrypy.engine.block()

我正在尝试设置此根应用程序,以便我可以使用 _cp_dispatch 函数根据给定的路径分派应用程序。这是最好的方法吗?

您必须公开定义属性的对象"exposed":

import cherrypy
import re
import json
import requests

class root(object):
    exposed = True

    def GET(self):
        return "<html> <p> Hello </p> </html>"



if __name__ == '__main__':

    conf = {'server.socket_host': '127.0.0.1',
            'server.socket_port': 8080}
    cherrypy.config.update(conf)

    cherrypy.tree.mount(root(), '/', {
        '/': {
            'request.dispatch': cherrypy.dispatch.MethodDispatcher(),
            'tools.trailing_slash.on': False,
        }
    })
    cherrypy.engine.start()
    cherrypy.engine.block()