我正在使用flask创建一个网站,目录为:
我想在模板目录中定义一个名为“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模板的定义或引用是否错误。谢谢
答案 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 %}-->
只有删除评论的那个,才能正确执行程序。我不知道为什么,评论的人仍然有效。