Вот код, который я в итоге получил. Изменения, которые мне нужно было сделать, были не сразу очевидны для меня:
Мне пришлось перенести мою конфигурацию из файла в словарь, чтобы я мог добавить в нее диспетчера.
Мне пришлось включить вызов cherrypy.mount перед cherrypy.quickstart.
Я должен был включить dispatcher.explicit = False
Я надеюсь, что любой другой, имеющий дело с этой проблемой, найдет этот ответ полезным.
class ABRoot:
def index(self):
funds = database.FundList()
template = lookup.get_template("index.html")
return template.render(fund_list=funds)
if __name__ == '__main__':
dispatcher = cherrypy.dispatch.RoutesDispatcher()
dispatcher.explicit = False
dispatcher.connect('test', '/', ABRoot().index)
conf = {
'/' : {
'request.dispatch' : dispatcher,
'tools.staticdir.root' : "C:/Path/To/Application",
'log.screen' : True
},
'/css' : {
'tools.staticdir.debug' : True,
'tools.staticdir.on' : True,
'tools.staticdir.dir' : "css"
},
'/js' : {
'tools.staticdir.debug' : True,
'tools.staticdir.on' : True,
'tools.staticdir.dir' : "js"
}
}
#conf = {'/' : {'request.dispatch' : dispatcher}}
cherrypy.tree.mount(None, "/", config=conf)
cherrypy.quickstart(None, config=conf)