【问题标题】:flask Template Inheritance tutorialflask模板继承教程
【发布时间】:2015-12-20 04:40:30
【问题描述】:

我正在浏览烧瓶教程,但我似乎无法让模板继承工作。以下是我的代码示例

我的 base.html 是:

<!DOCTYPE html>
<html lang="en">
<head>
    {% block head %}
    <link rel="stylesheet" href="style.css" />
    <title>{% block title %}{% endblock %} - My Webpage</title>
    {% endblock %}
</head>
<body>
    <div id="content">{% block content %}{% endblock %}</div>
    <div id="footer">
        {% block footer %}
        &copy; Copyright 2008 by <a href="http://domain.invalid/">you</a>.
        {% endblock %}
    </div>
</body>
</html>

我的孩子温度是:

{% extends "base.html" %}
{% block title %}Index{% endblock %}
{% block head %}
    {{ super() }}
    <style type="text/css">
        .important { color: #336699; }
    </style>
{% endblock %}
{% block content %}
    <h1>Index</h1>
    <p class="important">
      Welcome to my awesome homepage.
    </p>
{% endblock %}

我的烧瓶脚本是:

from flask import Flask,  render_template
app = Flask(__name__)


@app.route('/')
def home():
    return render_template("base.html")

if __name__ == "__main__":
    app.debug = True
    app.run()

关于如何合并子模板,我应该做些什么特别的事情吗?或者我应该以不同的方式呈现基本模板?

【问题讨论】:

    标签: python flask jinja2


    【解决方案1】:

    Jinja extends 工作(表面上)类似于 Python 子类化。实例化父类时不会得到子类的实例,渲染基模板时也不会得到子模板的结果。改为渲染子模板。

    return render_template('child.html')
    

    【讨论】:

      猜你喜欢
      • 2019-09-04
      • 1970-01-01
      • 2021-12-10
      • 2015-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-16
      • 2011-04-17
      相关资源
      最近更新 更多