Django 中可选的多个 URL 键值对参数
Multiple URL key-value pair parameters that are optional in Django
我正在寻找一种在 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。
我不太确定两件事:
- 如何编写URL规则
- 如何解释视图中的键值参数
任何 help/pointers 将不胜感激!
将此 url 添加到 urls.py
:
url(r'^example/(.*)', 'app.views.key_values_view'),
然后得到 key/value 对的字典:
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')
...
我正在寻找一种在 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。
我不太确定两件事:
- 如何编写URL规则
- 如何解释视图中的键值参数
任何 help/pointers 将不胜感激!
将此 url 添加到 urls.py
:
url(r'^example/(.*)', 'app.views.key_values_view'),
然后得到 key/value 对的字典:
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')
...