代码之家  ›  专栏  ›  技术社区  ›  Bastien Léonard

如何为“塔”动作指定默认参数值?

  •  1
  • Bastien Léonard  · 技术社区  · 14 年前

    class ArticleController(BaseController):
        def all(self, page, pagesize):
    

    /article/all/{page}/{pagesize} ,默认值为 page pagesize .

    我试着在action方法中设置默认值,但是很明显两者都是 页码 如果我只设置一个 页码 价值观。

    我也试过这样的方法,但也没用:

    map.connect('/article/all/{page}/{pagesize}', controller='article',
                action='all')
    map.connect('/', controller='article', action='all', page=0, pagesize=5)
    map.connect('/article/all/', controller='article', action='all', page=0,
                pagesize=5)
    

    实际上,在这种情况下,当我访问 / /article/all/ . /article/all (即使我去掉了尾随 在相应的路线上)。

    不管怎样,我的问题是,我怎么能 all() 使用的默认值调用 页码 页大小 /article/all/42 ?

    (我知道我可以使用查询字符串。 map.redirect()

    1 回复  |  直到 14 年前
        1
  •  2
  •   Antoine Leclair    14 年前

    你的路线应该是这样的:

    map.connect('/article/all',
        controller='Article', action='all',
        page=0, pagesize=5)
    map.connect('/article/all/{page}',
        controller='Article', action='all',
        pagesize=5)
    map.connect('/article/all/{page}/{pagesize}',
        controller='Article', action='all')
    

    class ArticleController(BaseController):
        def all(self, page, pagesize):
            return 'Page: %s. Pagesize: %s.' % (page, pagesize)
    
    推荐文章