如何在HTML模板中使用单循环从dict中获取两个键

时间:2017-09-03 06:53:18

标签: python django-templates

My HTML code

以下是使用render_to_response发送到html的dict

{'header_list':['关于我们','免责声明','定位','立即订购','登录','注册'],'sidebar_list':['关于我们','免责声明', '定位','立即订购','登录','注册'],'href_list':['/ admin /','#','#','#','#','#']}

fp = os.path.join(fp, 'static/appdata/menubar.txt')
with open(fp, 'r') as mb:
    for i, line in enumerate(mb):
        menu_list.append(line)
        hl = ast.literal_eval(menu_list[i])
        head_list.update(hl)
print(head_list, type(head_list))
hl = head_list['href_list']
print(hl)
return render_to_response('header.html', head_list)

header.html中的我的HTML代码

<div id="nav">
                <ul>

                    {% for i1 in  header_list %}

                        <li><a href={{ href_list.1 }}><span>{{ i1 }}</span></a></li>

                    {% endfor %}

                </ul>
            </div>

我想通过字典列表

动态地使用href标签

页面标题如下所示 enter image description here

2 个答案:

答案 0 :(得分:0)

在python中,您可以使用以下语法访问dict的键值和列表元素:

my_dict = {'key1':1,'key2':2}
my_dict['key1']
my_list = [1,2,3,4,'hello']
my_list[4]

在您的示例中,您尝试使用href_list.1尝试访问第一个元素,我认为href_list[1]

编辑:

>>> a
[12, 34, 4]
>>> b
[3, 4, 5]
>>> [(a[i],b[i]) for i in range(len(a))]
[(12, 3), (34, 4), (4, 5)]
>>> 

现在你可以做到了,

for i,j in [(a[i],b[i]) for i in range(len(a))]:
    print('link:{},name:{}'.format(i,j))

如果您的模板循环

,您也可以这样做

答案 1 :(得分:0)

改变这样的字典 {'header_list':[('关于我们','/ admin /'),('免责声明','#'),('定位','#'),('立即订购','#'), ('登录','#'),('注册','#')]}

和HTML代码如下

{% for i1, i2 in  header_list %}
  <li><a href={{ i2 }}><span>{{ i1 }}</span></a></li>
{% endfor %}