首页 > 其他 > 详细

Flask模板 (二)

时间:2018-03-24 00:09:44      阅读:201      评论:0      收藏:0      [点我收藏+]

Jinja2模板支持宏。这里的宏类似于Python中的函数。

{% macro render_comments %}
    <li>{{ comment }}</li>
{% endmacro %}

<ul>
    {% for comment in comments %}
        {{ render_comments(comment) }}
    {% endfor %}
</ul>

宏可通过单独保存在文件中多次使用,在使用的时候导入:

{% import ‘macros.html‘ as macros %}
<ul>
    {% for comment in comments %}
        {{ macro.render_comment(comment) }}
    {% endfor %}
</ul>

需要多次使用的代码片段可以写入单独文件,再包含于所有模板中,避免重复。在模板中输入

{% include ‘comment.html‘ %}

 

模板的导入

模板分为多个块,不影响HTML的编译。使用{% block name %}和{% endblock %}来分割。

此处使用extends继承其他模板的基础内容。若后面没有任何内容则相当于复制导入的模板,若再次定义模板中的块则实现对原模版的更改。

若在原模版内容基础上添加新的内容,则用变量{{ super() }}代表原模板的内容。

{% extends "bootstrap/base.html" %}

{% block title %}
IceTouched
{% endblock %}

{% block navbar %}
    ... ...
{% endblock %}

{% block content %}
<div class="container">
{% block page_content %}
{{super()}}
Hello
{% endblock %}
</div> {% endblock %}

 

Flask模板 (二)

原文:https://www.cnblogs.com/icetouch/p/8605857.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!