在CherryPy中参数化网址

时间:2014-06-09 20:43:02

标签: python routes cherrypy mako

我有一个Root对象,它会映射到/

它包含一个图表,点击其中一行,用户就会连接到另一个页面Pie

Pie中,有两个函数采用相同的参数。

def submit_data(self, wf_id, run_id, run_desc, day)

def submit_timeline_data(self, wf_id, run_id, run_desc, day)

我希望以这样的方式映射url:当用户单击一行时,与该行对应的值将传递给链接地址。

例如,如果该行对应于值wf_id = 1, run_id = 1, run_desc = "1", day = "2014-05-20",则单击该行会将用户连接到类似/pie/1/1/1/2014-05-20或类似的内容,并将这些值传递给{{1}的html模板}}

我该怎么做?

目前我正在使用Pie,并手动设置所有网址,但由于RoutesDispatcher()参数可以采用任何值,因此无法再进行此操作。

我使用的是day模板语言。

1 个答案:

答案 0 :(得分:0)

你需要这样的东西......

@cherrypy.expose
def Pie(self, wf_id='', run_id='', run_desc='', day=''):
    if(wf_id == '' or run_id == '' or run_desc == '' or day=''):
        return """<a href='/pie/%s/%s/%s/%s'>click here</a>""" % (wf_id, run_id, run_desc, day)
    else:
    # update db

希望这有帮助!