2013-02-14 24 views
3

我确实有一个使用cherrypy和Mako模板以Python编写的非常简单的Web应用程序。最枯燥的事情是用参数打印链接,特别是当我需要增量增加更多参数,更新现有参数或删除参数时。在cherrypy/mako中处理具有动态参数的URL

该应用中的常见模式是表中列出项目的增量限制 - 例如,存储在数据库中的图像列表。然后,用户

  1. 开始与所有图像上市,即网址是/图像
  2. 限制了项目的类别,这样的网址是/图像?类别= 2398
  3. 限制的项目于2013年进入/ 01/07这样的网址是/图像?类别= 2398 &日期= 20130107
  4. 下降的类别限制,因此网址是/图像?日期= 20130107
  5. 通过各种尺寸的物品,/图像?日期= 20130107 & sort = size & order = asc
  6. 在相反方向排序的项目,/图像?日期= 20130107 &排序=大小&顺序=降序

大多数发生这种情况通过点击表头或表格单元格的值(例如类别名称)并处理它是很多代码,或多或少仍然是相同的,并且编写和修改非常繁琐。

自动处理这个问题的最佳方法是什么?是否有樱桃(一种工具/插件)或Mako使这更容易?

回答

1

你可以把你的网址变量在配置文件中,并让他们在同一个地方......

#server.conf 
[urlvariables] 
variables: ['date', 'sort', 'order'] 

那么当你去渲染你的Mako的模板建立像这样的网址...

urlstring = '' 
for CurrentVar in cherrypy.request.app.config['urlvariables']['variables']: 
    urlstring += CurrentVar + '=' + 'yourvalue&' 

mytemplate = Template("<a href='{url}'>click here</a>") 
return mytemplate.render(url='/images?' + urlstring) 

希望这会有所帮助!

Andrew