3

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

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

  1. 以列出的所有图像开头,即 URL 是 /images
  2. 仅限于类别中的项目,因此 URL 为 /images?category=2398
  3. 仅限于 2013/01/07 输入的项目,因此 URL 为 /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

大多数情况是通过单击表格标题或表格单元格中的值(例如类别名称)并处理它是很多代码,这些代码或多或少仍然相同,并且编写和修改非常乏味。

自动处理此问题的最佳方法是什么?有什么东西可以让cherrypy(一个工具/插件)或Mako让这更容易吗?

4

1 回答 1

1

您可以将您的 urls 变量放在一个配置文件中,并将它们全部保存在一个地方...

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

然后当你去渲染你的 Mako 模板时,像这样构建 url...

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)

希望这可以帮助!

安德鲁

于 2013-02-14T13:08:36.667 回答