Rendering a dictionary in Jinja2(在JJAA2中呈现词典)
本文介绍了在JJAA2中呈现词典的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用URL缩短器(基于Werkzeug的Short演示应用)。
我有一个这样的词典-
('1', {'target': 'http://10.58.48.103:5000/', 'clicks': '1'})
('3', {'target': 'http://slash.org', 'clicks': '4'})
('2', {'target': 'http://10.58.48.58:5000/', 'clicks': '1'})
('5', {'target': 'http://de.com/a', 'clicks': '0'})
在url_list中返回并由Render_Template使用的
def on_list_urls(self, request):
url_list = self.get_urls()
return self.render_template('list_urls.html',
url_list = url_list
)
模板list_urls非常简单-
{% extends "layout.html" %}
{% block title %}List URLs{% endblock %}
{% block body %}
<h2>List URLs</h2>
<ul id="items">
{% for item in url_list %}
<li>{{ item }}</li>
{% endfor %}
</ul>
{% endblock %}
问题是,我似乎无法访问词典中的项目。
该行
<li>{{ item }}</li>
是我要集中注意力的地方。如上所述,我得到了字典中键的列表。
<li>{{ item["target"] }}</li>
不返回任何内容。所有的 {{user.url}}&Quot;>;{{user.username}} 文档中的键入内容似乎起作用。
请给我点子好吗?新手-温柔点。谢谢。
更新
感谢您的回复。
Ewan的答案有效,但使用了一系列词典。我想传递一个字典并呈现它(因为我想要一个非整数的项索引)。金佳也这么做吗?
还有-I错误表示url_list。更像是这样-
{'a': {'target': 'http://testing.com/test', 'clicks': '0'},
'1': {'target': 'http://10.58.48.103:5000/', 'clicks': '1'},
'3': {'target': 'http://slash.org', 'clicks': '4'},
'2': {'target': 'http://10.58.48.58:5000/', 'clicks': '1'}}
进一步试验-传递字典会产生有关列表对象的错误。
{% for key in url_list.iteritems() %}
UnfinedError:‘List Object’没有‘iterItems’属性
再次感谢。
仍然不明白为什么它认为我在传递列表,但现在让它工作了。
{% for key, value in url_list.iteritems() %}
<li>{{ key }} - {{ value["target"] }} - {{ value["clicks"] }}</li>
打印出所有内容。非常感谢。
推荐答案
您的url_list
应该如下所示:
url_list = [{'target': 'http://10.58.48.103:5000/', 'clicks': '1'},
{'target': 'http://slash.org', 'clicks': '4'},
{'target': 'http://10.58.48.58:5000/', 'clicks': '1'},
{'target': 'http://de.com/a', 'clicks': '0'}]
然后使用:
<li>{{ item["target"] }}</li>
模板中的
将起作用。
编辑1:
您的模板认为您传入的是列表,所以您确定传入的是原始词典而不是我的上面的列表吗?
您还需要访问字典中的key
和value
(当您传递字典而不是列表时):
Python 2.7
{% for key, value in url_list.iteritems() %}
<li>{{ value["target"] }}</li>
{% endfor %}
Python 3
{% for key, value in url_list.items() %}
<li>{{ value["target"] }}</li>
{% endfor %}
这篇关于在JJAA2中呈现词典的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:在JJAA2中呈现词典
基础教程推荐
猜你喜欢
- 使用Python匹配Stata加权xtil命令的确定方法? 2022-01-01
- 合并具有多索引的两个数据帧 2022-01-01
- 症状类型错误:无法确定关系的真值 2022-01-01
- Python 的 List 是如何实现的? 2022-01-01
- 如何在Python中绘制多元函数? 2022-01-01
- 将 YAML 文件转换为 python dict 2022-01-01
- 哪些 Python 包提供独立的事件系统? 2022-01-01
- 如何在 Python 中检测文件是否为二进制(非文本)文 2022-01-01
- 使 Python 脚本在 Windows 上运行而不指定“.py";延期 2022-01-01
- 使用 Google App Engine (Python) 将文件上传到 Google Cloud Storage 2022-01-01