flask - 无法将子模板渲染到布局
问题描述
我试图渲染两者render_template('index.html')
和 render_template('layout.html')。只有标题和布局呈现。索引未呈现。哪里出了问题?
应用程序.py
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
header.html:
{% block header %}
<div>this is header</div>
{% endblock %}
布局.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>{% block title %} - My Site {% endblock %}</title>
<link rel="stylesheet" href="">
</head>
<body>
{% include 'header.html' %}
{% block content %}
<div> this is the layouts <div>
{% endblock %}
</body>
</html>
索引.html:
{% extends 'layout.html' %}
{% block content %}
<div>this is index page</div>
{% endblock %}
解决方案
发生的事情是Jinja的概念有点不同。如果您在 index.html 文件中扩展 layout.html ,则必然需要在其中调用标头替换。所以标题没有被调用。这是一个例子:
{% extends 'layout.html' %}
{% block header %}
<div>this is header</div>
{% endblock %}
{% block content %}
<div>this is index page</div>
{% endblock %}
我开发了一个项目,可以帮助您进行一系列自动创作,如果您想冒险并帮助我改进它,请放心:https ://github.com/marcosstefani/flute
推荐阅读
- entity-framework - WebAPI ,实体框架 - 为每个实体填充审计字段(CreatedOn、CreatedByUserId、ModifiedOn、ModifiedByUserId)
- reactjs - 如果一次满足某些条件,则停止在状态上执行映射功能
- reactjs - 反应绑定错误:FontChooser.js:15 Uncaught TypeError: this.setstate is not a function
- swiftui - SwiftUI - edgesIgnoringSafeArea 在 iOS 13.4 中的行为不同
- java - 在两种情况下,Selenium 无法通过 @FindBys 注释找到元素
- java - Mysql java不能使用另一个类的连接方法
- c# - 使用 EFCore 3 更新 DDD 中的实体
- bash - 在 Windows 64 位的 cygwin 上使用 `make` 时出错:/usr/bin/sh: -c: line 0: 意外标记 `(' 附近的语法错误
- javascript - 使用 Promise all 填充下拉列表
- java - 如何使用spring data jpa删除特定的语句块