python中的jinja2不会将数据打印到模板

时间:2015-01-28 07:58:50

标签: python jinja2

您好我刚刚开始在python中使用Jinja2模板来构建一个网站,但我面临的问题是在python控制台中打印模板时不会将数据打印到它。而且在某些时候它给了我

<built-in method title of str object at 0x7f9adefebe70>

这是我的delete.html文件

{% for Data in results %}
  <h3>{{ Data.u_id }}</h3>
  <h3>{{ Data.p_id }}</h3>
  <h3>{{ Data.name }}</h3>
  <h3>{{ Data.email }}</h3>
  <h3>{{ Data.title }}</h3>
  <h3>{{ Data.body }}</h3>
  <h3>{{ Data.upvotes }}</h3>
  <h3>{{ Data.comments }}</h3>
  <h3>{{ Data.date_created }}</h3>
{% endfor %} 

以下是从数据库

获得的dict的结果
{'body': 'they are hostel', 'name': 'suraj', 'title': 'betas',
 'p_id': 1L, 'comments': 2L, 'date_created': datetime.datetime(2015, 1, 25, 10, 36, 28),
 'upvotes': 0L, 'u_id': 1L, 'email': 'suraj@exmaple.com'}

以下代码我在python shell中运行

import jinja2
loader = jinja2.FileSystemLoader('./delete.html')
env = jinja2.Environment(loader=loader)
template = env.get_template('')
print template.render(results=results)

但是我得到以下输出(在输出语句中重复以下)

<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3><built-in method title of str object at 0x7f9adc8012a0></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>

我的输出应该是delete.html它应该打印我发送的字典中的相应数据。

如何解决这个问题? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

results是单个词典,而不是词典列表。因此,当您遍历它时,您将获得键,这些键是字符串。您应该删除for循环,然后只需参考{{ results.title }}等。