Flask + html - 将数据发送到正在扩展的模板

时间:2014-12-21 20:24:52

标签: html5 flask

我有一个相当简单的设置。我创建了一个烧瓶应用程序并在路径'/'上调用index.html。

index.html包含:

{% extends "template.html" %}

{% block content %}

    <h4 class="centeredText">
        HEADER TEXT
    </h4>

    {% for p in paragraph %}
        <p class="centeredText">
            {{ p }}
        </p>
    {% endfor %}

{% endblock %}

我的template.html也非常简单:

<html>

    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='bootstrap.min.css') }}">
    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='custom.css') }}">
    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='custom_navbar.css') }}">    
    <link href='http://fonts.googleapis.com/css?family=Josefin+Sans:300' rel='stylesheet' type='text/css'>

    <!--<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css"> -->

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <head>
        <h1>{% if pageType = 'home' %} HOME {% endif %}</h1>
    </head>

    <body> <h1>TEMPLATE</h1>
       <div class="container">
        {% block content %}
        {% endblock %}
       </div>
    </body>
</html>

测试时我收到此错误:

expected token 'end of statement block', got '='

编辑:我错过了在template.html的标题中包含变量。我现在知道,这是错误的来源。无论如何将变量传递给template.html,还是不好的做法?

帮助!

1 个答案:

答案 0 :(得分:1)

pageType变量应该出现在您的template.html中,只要您将其传递给render_template函数即可。在您的情况下,这里有语法错误:

{% if pageType = 'home' %}

您需要使用==,因此它应如下所示:

{% if pageType == 'home' %}