如何使Python Bottle识别许多根路径

时间:2014-03-06 21:12:35

标签: python bottle

好吧,我使用Python Bottle框架,我想为每种类型的链接创建一个根路径,如下所示:

/py-admin
/py-admin/
/py-admin/<pagename>

我试过这个,但我有404错误

@bottle.get("/py-admin/<pagename>")
def py_admin(pagename=None):
    if pagename == "download":
       do sth  
       return .....  
    elif pagename == "update":
       do sth else
       return .......
    return .....

因此,如果链接具有第二个路径,则将应用if。否则,如果/py-adminpy-admin/是链接,则将调用最终返回。

任何提示如何解决?如果可能的话,我宁愿不创建不同的路径根。

1 个答案:

答案 0 :(得分:1)

您是否只是尝试以下操作?

@bottle.get("/py-admin")
@bottle.get("/py-admin/")
@bottle.get("/py-admin/<pagename>")
def py_admin(pagename=None):
    # your code…

这实际上就是本教程的一个例子:

这就是你的方式,如果真的你&#34;更喜欢不创造不同的路径根&#34;

但是如果你的代码看起来像你的简短例子,那么而不是:

@bottle.get("/py-admin/<pagename>")
def py_admin(pagename=None):
    if pagename == "download":
       do sth  
       return .....  
    elif pagename == "update":
       do sth else
       return .......
    return .....

我真的认为你应该考虑这样做:

@bottle.get("/py-admin")
@bottle.get("/py-admin/")
def py_admin():
    # … do something
    return ……

@bottle.get("/py-admin/download")
@bottle.get("/py-admin/download/")
def py_admin_download():
    # … do something
    return ……


@bottle.get("/py-admin/update")
@bottle.get("/py-admin/update/")
def py_admin_update():
    # … do something
    return ……

但最终它取决于你,这取决于你的代码。

HTH