【问题标题】:Tornado webapp page has elements from extended template but missing all other elementsTornado webapp 页面包含扩展模板中的元素,但缺少所有其他元素
【发布时间】:2021-01-15 05:36:52
【问题描述】:

我正在使用 Tornado 创建一个 web 应用程序,我遇到了一个问题,我拥有的 .html 页面正在扩展另一个 .html 页面,如下所示:

{%extends "sitebase.html" %}
<div id="about">
 <p>hello</p>
</div>

当我提供此页面时,我从“sitebase.html”(一个简单的导航栏)中看到了正确的内容,但是我在网页上看不到“你好”。我检查了页面,甚至没有看到带有“hello”的元素,并且控制台中没有错误。当我删除扩展块并粘贴 sitebase.html 的内容时,我看到了预期的结果。

有没有其他人有过这种使用扩展块导致页面其他部分无法呈现的龙卷风经验?

【问题讨论】:

    标签: python html tornado


    【解决方案1】:

    来自docs(强调我的):

    {% extends *filename* %}

    从另一个模板继承。使用扩展的模板应该包含一个或多个block 标签来替换父模板的内容。 子模板中未包含在block 标记中的任何内容都将被忽略。例如,请参阅{% block %} 标签。

    这意味着当您扩展模板时,{% block %} 标签内的内容会被渲染,标签外的任何内容都会被忽略。

    例子:

    base.html

    <title>{% block title %}Default title{% end %}</title>
    
    {% block content %}
    {% end %}
    

    mytemplate.html

    {% block title %}Title for this page{% end %}
    
    {% block content %}
      Some data to render in the content block
    {% end %}
    
    This will not be rendered because it is outside a block tag
    

    【讨论】:

    • 谢谢!这是我第一次使用模板,我尝试扩展的模板中没有 {% block content %}
    猜你喜欢
    • 1970-01-01
    • 2017-02-20
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    相关资源
    最近更新 更多