【问题标题】:handling URLs with dynamic parameters in cherrypy/mako在cherrypy/mako中处理带有动态参数的URL
【发布时间】:2013-01-29 17:00:25
【问题描述】:

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

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

  1. 从列出的所有图像开始,即 URL 是 /images
  2. 仅限于某个类别中的项目,因此 URL 为 /images?category=2398
  3. 仅限于 2013 年 1 月 7 日输入的项目,因此 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 使这更容易吗?

【问题讨论】:

    标签: python cherrypy mako


    【解决方案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)
    

    希望这会有所帮助!

    安德鲁

    【讨论】:

      猜你喜欢
      • 2023-03-10
      • 2011-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多