Eli*_*les 21 python templates jinja2
我正在使用Jinja2作为通过Python脚本生成的静态HTML网站的模板引擎.
我想在布局模板中重复一个块的内容,如下所示:
<html>
<head>
<title>{% block title %}{% endblock %} - {{ sitename }}</title>
</head>
<body>
<h1>{% block title %}{% endblock %}</h1>
<div id="content">
{% block content %}{% endblock %}
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
此模板将在页面模板中进行扩展,如下所示:
{% extends "layout.html" %}
{% block title %}Page title{% endblock %}
{% block content %}
Here goes the content
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
但是,这不能像我预期的那样工作,导致错误:
jinja2.exceptions.TemplateAssertionError: block 'title' defined twice
Run Code Online (Sandbox Code Playgroud)
金贾解释第二{% block title %}
中的layout.html作为一个块重新定义.
如何使用jinja2在同一模板中重复块的内容?
Sea*_*ira 47
使用特殊self
变量按名称访问块:
<title>{% block title %}{% endblock %} - {{ sitename }}</title>
<!-- ... snip ... -->
<h1>{{ self.title() }}</h1>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6091 次 |
最近记录: |