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