在扩展布局模板时,Jinja不会渲染任何内容

时间:2015-07-24 14:45:47

标签: python sqlite flask jinja2

我试图在页面上显示数据,但页面完全是空的。我知道数据库中有数据,我知道query_db函数返回正确的结果,但我无法弄清楚为什么数据不会被Jinja呈现。是什么导致了这个问题?

@app.route('/toto')
def toto():
    entries = query_db("select col1,col2 from toto where col1 = 'grand test'")
    return render_template('show_results.html', entries = entries)    

show_results.html

{% extends "layout.html" %}
{% block body %}
  <ul class=entries>
    {% for entry in entries %}
    <li><h2>{{ entry }}</h2>
    <br>
    {% else %}
    <li><em>No entry here</em>
    {% endfor %}
  </ul>
{% endblock %}  

layout.html

<html>
  <head>
    {% if title %}
    <title>{{ title }} - microblog</title>
    {% else %}
    <title>microblog</title>
    {% endif %}
  </head>
  <body>
    <div>Microblog: <a href="/index">Home</a></div>
    <hr>
    {% block content %}{% endblock %}
  </body>
</html>

1 个答案:

答案 0 :(得分:2)

Jinja不允许子模板输出父模板块中的任何内容。 (换句话说,块名称必须匹配。)将子模板中的block body更改为block content或将layout.html中的content块重命名为body工作