我正在玩一个URL缩短器(基于来自Werkzeug的Shortly演示应用程序)。
我有这样的命令-
('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 %}
问题是,我似乎无法访问dict中的项目。
线
<li>{{ item }}</li>
是我关注的重点。如上所述,我获得了字典中键的列表。
<li>{{ item["target"] }}</li>
什么也不返回。文档中的{{user.url}}“> {{user.username}}类型的东西似乎都不起作用。
有什么想法吗?新手-温柔。谢谢。
更新资料
感谢您的答复。
Ewan的答案有效,但使用了一系列词典。我想传递一个字典并将其呈现(因为我想要一个非整数的项目索引)。Jinja这样做吗?
另外-我误称了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() %}
UndefinedError: 'list object' has no attribute '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>
在您的模板中将起作用。
您的模板认为您正在传递一个列表,那么您确定要传递的是原始字典而不是我上面的列表吗?
另外,您还需要访问字典中的akey
和a 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 %}
问题内容: 我正在使用Jinja2使用Python3创建Golang代码。我需要在最终代码中将引号中的一些参数传递给函数,但Jinja2不会转义双引号。我的python代码类似于: 我的模板是: 我在控制台中得到的内容(python代码中的打印内容): 我在Go的最终代码中想要什么: 我在最终代码中实际得到的是: 我已经尝试过: 他们都没有我想要的。有任何想法吗? 谢谢 :)) “解决了”: 我从
问题内容: 我最近将笔记本电脑升级到Snow Leopard,将TeX升级到了3.1415926版本(TeX Live 2011 / MacPorts 2011_5),并安装了Python 2.7.3。完成所有这些安装后,我运行了macport selfupdate和macport升级过时的情况。但是,现在,当我尝试在matplotlib中使用TeX时,会收到以下信息: 类似于上一个问题,我尝试通
问题内容: 我有一个Flask应用程序,当从flask调用它时,调用时不会出现问题。 我需要相同的方法在flask外部工作 我可以使用,但是我想在两种情况下(flask and command line)都可以使用相同的方法 问题答案: 你需要在应用程序上下文中呈现它。将应用程序导入后端代码,然后执行以下操作。
问题内容: 我一直在尝试增强我用Java编写的GUI系统,以使用亚 像素抗锯齿功能,并且除两个剩余的 异常现象之外,都已经取得了成功。这是我的一个后续从几个星期的其他问题 之前。 第一个问题是将渲染提示KEY_ANTIALIASING设置为 VALUE_ANTIALIAS_ON会导致将KEY_TEXT_ANTIALIASING设置 为LCD(子像素)AA值时被忽略。谁能对此有所启发?目前,我 被迫
问题内容: 我有一个使用FitViewport的尺寸为800x480的游戏世界,最初使用像素来渲染box2d物体+固定装置,因此所有物理效果看起来都是漂浮而缓慢的。通过查看文档,我发现box2d使用度量单位,因此我将box2d的位置和大小转换为32倍,因此最终得到了25x15米的box2d世界。 我遇到的问题是,现在box2d对象变得非常小。如何缩小它们,使它们在屏幕上显示常规尺寸? 问题答案:
问题内容: 我在尝试使用数据数组呈现元素时遇到问题。在的下面的代码中,可以正常工作,但列表项未出现。 我究竟做错了什么?请随时指出并非最佳做法的任何内容。 问题答案: GoshaArinich是正确的,您应该返回您的元素。但是,在这种情况下,您应该在浏览器控制台中收到讨厌的红色警告 数组或迭代器中的每个子代都应具有唯一的“键”道具。 因此,您需要在列表中添加“键”: 或使用es6 箭头功能放下并做
我正在使用flask制作(学习)一个简单的web应用程序。我没有使用css输入的模板。我使用jinja2模板中的'style'标记直接编码css。但style标记不起作用。即使在chrome中使用inspect元素,我也能看到样式标签被渲染? 编辑:不工作,我的意思是像背景颜色仍然是白色,字体大小和行高不是编码的。 编辑:当我将css元素放入base.html时,呈现工作。但是当我通过index.
我试图使用opengl在lwjgl显示器上显示自定义字体的文本。目前,我正在使用自定义位图字体类从png文件加载字体,并以与tileset相同的方式显示它们。它工作正常,但当我将文本绘制到屏幕上时,字符之间的间距完全不同,因为字母M比字母i宽得多,并且所有字符的宽度都不同。有没有办法检测每个字符的宽度?或者是否有任何特定于lwjgl字体的库?有一种方法可以使用slick2d来实现,但加载整个库只是