Python Flask:访问模板中的一个特定字典项

时间:2015-11-03 16:03:05

标签: python dictionary flask

我有一个静态dictionary

urls = {
    'foo': 'http://example.com',
    'bar': 'http://example2.com',
    'test': 'http://example3.com'}

然后我有一个元组列表。每个tuple包含前一个字典的一个键:

myList = [('bar', 0.9),('test', 0.7),('foo', 0.5)]

我想在模板中按降序排列每个键字符串的相关网址,就像它们在列表中一样(显式创建in this way并设置reverse = True)。

在模板中我试过这个,但是,正如预期的那样,它不起作用:

{% for i in myList %}
<tr>
<a href= " {{ urls[i[0]] }} ">  
  <td>
    {{ i[0] }}
  </td> 
</a> 
</tr>
{% endfor %} 

那么,我如何访问dictionary元素?

2 个答案:

答案 0 :(得分:1)

您生成的HTML错误。

请勿按照您的方式将表格元素放入链接文字中。

我已经测试了这样的简单html:

<table>
  <tr>
    <a href= " http://google.de ">
      <td> Fooo 
      </td>
    </a>
  </tr>
</table>

它将导致“死”链接。将完整的a href放入<td>代替:

<table>
  <tr>
    <td> 
      <a href= " http://google.de ">
        Fooo 
      </a>
    </td>
  </tr>
</table>

答案 1 :(得分:0)

您需要添加“| safe”,如下所示:

    {% for i in myList %}
    <tr>
    <a href= " {{ urls[i[0]] | safe }} ">  
      <td>
        {{ i[0] }}
      </td> 
    </a> 
    </tr>
    {% endfor %}