我想以类似于Python web.py或Python瓶子的方式来路由请求。
使用这些框架,您只需在URL中添加标签即可用于传递参数,例如:
@route('/api/part1/<tag1name>/part2/<tag2name>')
def handlerfunction(self, tag1name, tag2name):
CherryPy确实有popargs装饰器,例如
@cherrypy.popargs('name')
但是,当URI中编码的值不止一个时,以正确的方式将它们分配给参数会变得非常不方便。
此外,我希望能够根据CherryPy MethodDispatcher基于HTTP请求方法进行路由。
答案 0 :(得分:1)
答案是使用URL路由映射模块,例如“Routes”。 “路线”首先是为Pylons开发的,但确实支持CherryPy。
Routes是Rails路由系统的Python重新实现,用于将URL映射到应用程序操作,反之亦然地生成URL。通过路由,您可以轻松创建简洁且非常简洁的URL。
路由允许基于域,cookie,HTTP方法或自定义函数的条件匹配。内置子域支持。路由带有广泛的单元测试套件。
在完成文档并使其与CherryPy一起使用之后,我将使用一些CherryPy特定的实现示例更新此答案。