1

示例 Bottle.py 代码:

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

我的问题是:

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

  2. 给定路由(不是路由器!!)和参数,如何获取 URL?例如,我需要一个名为 reverse 的函数reverse(default_app().routes[0], name='me') == '/show_me'

4

2 回答 2

6

您可能需要考虑命名路线

@route('/show_<item_name>', name='item_show')
def show(item_name):
   return ''

现在给定路由名称和参数如何获取 URL?我们使用 get_url

get_url('item_show', item_name='my_item')

http://nongraphical.com/2012/08/using-bottle-py-in-production/

于 2014-10-10T08:44:49.160 回答
3

对于您的第一个问题,请使用Bottle.match. 给定一个path(ie '/show_magic') 和method(GETPOST其他什么),以下将返回一个包含Route对象及其参数的元组:

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

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

对于您的第二个问题,将路由器的build方法与路由rule和 kwargs 一起使用:

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

这似乎没有记录,但它有效。

于 2013-02-28T11:29:02.140 回答