我添加了新参数,因此更改了请求格式。在调试模式下,一切都通过了,并且我的状态为200 OK,但是当我运行我的应用程序时,我总是在404。
@cherrypy.popargs('id')
class Application:
def __init__(self):
self.scores = Scoring()
@cherrypy.popargs('model', 'threshold')
class Scoring:
@cherrypy.expose
@authorization
def index(self, id, model=None, threshold=None):
application_id = int(id)
threshold = float(threshold)
model = int(model)
...
if __name__ == '__main__':
cherrypy.config.update({
'request.dispatch': cherrypy.dispatch.MethodDispatcher(),
'tools.response_headers.on': True,
'tools.response_headers.headers': [('Content-Type', 'text/json')],
'server.socket_host': '0.0.0.0',
'server.socket_port': 8080
}
)
cherrypy.tree.mount(Application(), '/applications/')
cherrypy.engine.start()
cherrypy.engine.block()
相同的代码,但没有阈值参数可以很好地工作。我猜我在添加新参数时犯了一些错误。 GET请求格式通常如下所示:
'http://{host}:{port}/applications/{id}/scores/{model}/'
现在看起来像这样:
'http://{host}:{port}/applications/{id}/scores/{model}/{threshold}/'
我是CherryPy的新手,欢迎任何帮助。