Python Flask Jinja - 扩展模板时扩展/渲染模板

Posted

技术标签:

【中文标题】Python Flask Jinja - 扩展模板时扩展/渲染模板【英文标题】:Python Flask Jinja - extend/render template when extend a template 【发布时间】:2015-11-24 14:46:50 【问题描述】:

假设我们有定义 content 块的布局模板“layout.html”。

<html> % block content % % endblock % </html>

然后,我们创建另一个扩展此布局的模板“somePage.html”。

% extends "layout.html" %
    % block content %
        <div> Anything </div>
    % endblock % 

我需要Anything 再次扩展另一个模板。例如

% extends "layout.html" %
    % block content %
        <div> % extends "anotherTemplate.html" %</div>
    % endblock % 

虽然这样做时,我收到错误提示

TemplateAssertionError: 不能使用非***范围的扩展

我该如何解决这个问题?如果您之前遇到过类似的情况,请分享。谢谢!

【问题讨论】:

看看它是否有效...在内部扩展中添加content block... 这将改变当前页面的模板关系。不可能@SurajPalwe 你真的应该看看这个问题***.com/questions/1976651/… 你找到答案了吗,因为我也需要解决这个问题 【参考方案1】:

如果你把代码改成这样:

% extends "layout.html" %
% block content %
     super() 
    <div>More html</div>
% endblock %

你会得到以下html:

<div>More html</div>
<div> Anything </div>

【讨论】:

以上是关于Python Flask Jinja - 扩展模板时扩展/渲染模板的主要内容,如果未能解决你的问题,请参考以下文章

Flask整合html模板

jinjia2

Python Flask框架详解

flask中jinjia2模板引擎详解1

flask中jinjia2模板引擎详解1

flask中jinjia2模板引擎使用详解1