使用cherrypy / mako中的动态参数处理URL

时间:2013-02-14 00:00:24

标签: python cherrypy mako

我确实有一个使用cherrypy和Mako模板用Python编写的非常简单的Web应用程序。最繁琐的事情是打印带参数的链接,尤其是当我需要逐步添加更多参数,更新现有参数或删除参数时。

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

  1. 从列出的所有图像开始,即URL为/ images
  2. 限制类别中的项目,因此URL为/ images?category = 2398
  3. 限制在2013/01/07输入的项目,因此网址为/ images?category = 2398& date = 20130107
  4. 删除类别限制,因此URL为/ images?date = 20130107
  5. 按尺寸对商品进行排序,/ images?date = 20130107& sort = size& order = asc
  6. 按相反方向对项目进行排序,/ images?date = 20130107& sort = size& order = desc
  7. 大多数情况是通过单击表格标题或表格单元格中的值(例如类别名称)来处理的,并且处理它的代码很多或多或少仍然相同且编写和修改相当繁琐。

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

1 个答案:

答案 0 :(得分: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)

希望这有帮助!

安德鲁