如何在烧瓶

时间:2016-03-15 03:25:20

标签: python flask jinja2

我正在使用flask创建一个网站,目录为:

enter image description here

我想在模板目录中定义一个名为“base.html”的jinja2模板页面,它可以在任何地方引用:

<!doctype html>
<html lang="zh-CN">
{% block header %}
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Mind Fly</title>
    <link rel="shortcut icon"  href="../static/images/head.ico"/>
{% endblock %}

{% block body %}

{% endblock %}

{% block footer %}

    <div class="bottom">
        <div class="container">
            .....
        </div>
    </div>
{% endblock %}
</html>

这是主页:

{% extends "base.html" %}  
    {% block body %}
    <div>
        <ul id="content">
            <li><img src="../static/images/book.jpg" ></li>
            <li><img src="../static/images/think.jpg" ></li>
        </ul>
    </div>
    {% endblock %}

这里是register.py:

from flask import render_template, Flask
@app.route('/')
def index():
    return render_template('home.html')

if __name__ == '__main__':
    app.run()

当我执行此操作时,它引发了“间隔错误500”,如果我不引用base.html,我可以正确获取主页。我不知道jinja2模板的定义或引用是否错误。谢谢

3 个答案:

答案 0 :(得分:1)

我唯一看错的代码就是您需要初始化app变量。

在register.py的导入下方添加app = Flask(__name__),您应该好好去!

希望这有帮助!

答案 1 :(得分:0)

检查此代码flaskbasic 我在runnable上运行了你的代码。您的app目录中存在一些问题,例如您需要将init.py重命名为__init__py。还可以在register.py中导入您的应用

来自应用导入应用 你的模板很好

答案 2 :(得分:0)

我找到了原因,这是因为我在一个页面中定义了两个同名的模板。即使我注释掉其中一个,它仍然会出现错误,如下所示:

{% block body %}
{% endblock %}
<!--{% block body %}
{% endblock %}-->

只有删除评论的那个,才能正确执行程序。我不知道为什么,评论的人仍然有效。