【问题标题】:jinja2 blocks not rendering in template [closed]jinja2 块不在模板中呈现 [关闭]
【发布时间】:2016-10-01 17:47:18
【问题描述】:

好的,这就像一个新手问题,但我正在尝试使用 Flask 使用 Jinja 进行模板继承。

我遇到的问题是我的块不会在我的 base.html 模板中呈现。

这是我的 base.html

代码:

<!doctype html>
<html>
    <head>
        <title>{% block title %}{% endblock %}</title>
    </head>
    <body>
        {% block body %}{% endblock %}
        <h2>From Layout</h2>   
    </body>
</html>

这是我扩展 base.html 的 index.html

{% extends "base.html" %}

{% block title %} Home {% endblock %}

{% block content %}
<h1> Welcome home {name}</h1>
{% endblock %}

这是我运行应用程序的主要 Flask 文件:

from flask import Flask
from flask import render_template

app = Flask(__name__)

@app.route('/')
@app.route('/<name>')
def index(name="Mark"):
    return render_template('index.html', name=name)

我错过了什么吗?似乎无法弄清楚我做错了什么。

【问题讨论】:

  • content != body.

标签: python flask jinja2


【解决方案1】:

您的索引文件具有“块内容”,但您的基本文件具有“块正文”。选择其中一个,但要保持一致。

一旦您解决了这个问题,您还需要修复名称的显示方式:变量语法是 {{ name }},而不是 {name}

【讨论】:

  • 我刚刚意识到这是问题所在,并且正在输入答案。猜你打败了我:)。这么愚蠢的错误。谢谢:)
  • 是的,后来看到了。没有问题。
猜你喜欢
  • 1970-01-01
  • 2019-06-15
  • 2022-01-26
  • 1970-01-01
  • 2013-05-12
  • 1970-01-01
  • 1970-01-01
  • 2014-03-28
  • 1970-01-01
相关资源
最近更新 更多