Django中可选的多个URL键值对参数

时间:2015-01-24 18:42:31

标签: python django url url-rewriting

我正在寻找一种在Django项目中拥有多个可选URL参数(键值对)的方法。

理想情况下,我需要能够处理无数个键值对的东西。采用以下格式。

http://example.com/example/key1/value1/

http://example.com/example/key1/value1/key2/value2/

http://example.com/example/key1/value1/key2/value2/key3/value3/

这种URL结构的用例适用于可能会或可能不会应用于对象列表的不同过滤器,传统上我会使用查询字符串,但我的印象是查询字符串不太好对于SEO。

我不太确定两件事:

  1. 如何编写网址规则
  2. 如何解释视图中的键值参数<​​/ li>

    非常感谢任何帮助/指示!

1 个答案:

答案 0 :(得分:1)

将此网址添加到urls.py

url(r'^example/(.*)', 'app.views.key_values_view'),

然后获得键/值对的词典:

def key_values_view(request, path):

    bits = path.split('/')
    it = iter(bits)
    data = dict(zip(it, it))

    key1 = data.get('key1')
    key2 = data.get('key2')
    key3 = data.get('key3')

    ...