2017-09-03 27 views
0

My HTML code如何在HTML模板採用單迴路

下面是一個使用選擇render_to_response發送到HTML中的字典來從一個字典兩個鍵

{「header_list」:「關於我們」,「免責聲明','定位','立即訂購','登錄','註冊','sidebar_list':['關於我們','免責聲明','定位','立即訂購','登錄','註冊'], 'href_list':'/管理/」, '#', '#', '#', '#', '#']}在header.html中

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) 

我的HTML代碼

<div id="nav"> 
 
       <ul> 
 

 
        {% for i1 in header_list %} 
 

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

 
        {% endfor %} 
 

 
       </ul> 
 
      </div>

我要動態地通過字典列表

頁頭看起來像這樣 enter image description here

回答

0

在Python中使用的href標籤,您可以訪問的值字典和列表元素的關鍵字:

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)) 

如果你的模板循環可以做同樣的事情

+0

是的,我知道我是使用href_list.1是因爲我無法獲取html代碼的for循環中列表形式的href_list。 –

+0

在這種情況下,你的'header_list'應該是一個含有名字和href的字典列表,這樣它會更容易實現,否則在這種情況下,我編輯了我的答案 –

+0

根據你的評論我已經更新了我的字典現在看起來像{'header_list':[('About Us','/ admin /'),('Disclaimer','#'),('Locate','#'),('Order Now', ''),('Login','#'),('Register','#')]}要做什麼來獲得關於我們打印和'/ admin /'作爲它的href和其他類似 –

0

改變這樣的字典 {'header_list':[('About Us','/ admin /'),('Disclaimer','#'),('Locate','#'),('Order Now','#') ,( '登錄', '#'),( '註冊', '#')]}

和HTML代碼像下面

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