2013-02-28 67 views
1

样品Bottle.py代码:bottle.py URL路由和反向howto?

@route('/show_<name>') 
def show(name): 
    return '' 

我的问题是:

  1. 给定一个URL,我们如何获取视图功能?例如。 URL是/show_magic,我需要知道show()函数是否对此请求负责URL

  2. 给定一个路由(不是路由器!!)和参数,怎么得到这个URL?例如我需要一个函数称为反向这reverse(default_app().routes[0], name='me') == '/show_me'

回答

2

关于第一个问题,使用Bottle.match。给定一个path(即'/show_magic')和methodGETPOST或其他),下面将返回包含Route对象及其参数的元组:

default_app().match({'PATH_INFO': path, 'REQUEST_METHOD': method}) 

调用的函数是Route对象的callbackcall属性。

关于第二个问题,使用路由器的build方法与途径的rule和kwargs:

default_app().router.build(route.rule, name='me') 

似乎那不被记录,但它的工作原理。

+0

感谢,看着你的代码和瓶子的源代码,它确实的伎俩。 – est 2013-02-28 13:27:48